Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du har installerat en modul i ett system vill du förmodligen importera modulen. Import är den process som läser in modulen i aktivt minne, så att en användare kan komma åt modulen i sin PowerShell-session. I PowerShell 2.0 kan du importera en nyligen installerad PowerShell-modul med ett anrop till Import-Module cmdlet. I PowerShell 3.0 kan PowerShell implicit importera en modul när en av funktionerna eller cmdletarna i modulen anropas av en användare. Observera att båda versionerna förutsätter att du installerar modulen på en plats där PowerShell kan hitta den. Mer information finns i Installera en PowerShell-modul. Du kan använda ett modulmanifest för att begränsa vilka delar av modulen som exporteras och du kan använda parametrar för Import-Module-anropet för att begränsa vilka delar som importeras.
Importera en Snap-In (PowerShell 1.0)
Moduler fanns inte i PowerShell 1.0: I stället var du tvungen att registrera och använda snapin-moduler. Vi rekommenderar dock inte att du använder den här tekniken just nu, eftersom moduler i allmänhet är enklare att installera och importera. Mer information finns i How to Create a Windows PowerShell Snap-in.
Importera en modul med Import-Module (PowerShell 2.0)
PowerShell 2.0 använder cmdlet för import av moduler. När den här cmdleten körs söker Windows PowerShell efter den angivna modulen inom de kataloger som anges i variabeln PSModulePath. När den angivna katalogen hittas söker Windows PowerShell efter filer i följande ordning: modulmanifestfiler (.psd1), skriptmodulfiler (.psm1), binära modulfiler (.dll). Mer information om hur du lägger till kataloger i sökningen finns i about_PSModulePath.
Följande kod beskriver hur du importerar en modul:
Import-Module myModule
Förutsatt att myModule fanns i PSModulePathläser PowerShell in myModule i aktivt minne. Om myModule inte fanns på en PSModulePath sökväg kan du fortfarande uttryckligen tala om för PowerShell var den finns:
Import-Module -Name C:\myRandomDirectory\myModule -Verbose
Du kan också använda parametern -Verbose för att identifiera vad som exporteras från modulen och vad som importeras till aktivt minne. Både exporter och importer begränsar vad som exponeras för användaren: skillnaden är vem som styr synligheten. Exporter styrs i princip av kod i modulen. Importen kontrolleras däremot av anropet Import-Module. Mer information finns i begränsa medlemmar som importeras, nedan.
Importera en modul implicit (PowerShell 3.0)
Från och med Windows PowerShell 3.0 importeras moduler automatiskt när någon cmdlet eller funktion i modulen används i ett kommando. Den här funktionen fungerar på valfri modul i en katalog som ingår i värdet för miljövariabeln PSModulePath. Om du inte sparar modulen på en giltig sökväg kan du dock fortfarande läsa in dem med det explicita alternativet Import-Module, som beskrivs ovan.
Följande åtgärder utlöser automatisk import av en modul, även kallat "automatisk inläsning av modul".
Använda en cmdlet i ett kommando. Om du till exempel skriver
Get-ExecutionPolicyimporteras modulen Microsoft.PowerShell.Security som innehåller cmdletenGet-ExecutionPolicy.Använd cmdleten Get-Command för att hämta kommandot. Om du till exempel skriver
Get-Command Get-JobTriggerimporteras modulen PSScheduledJob som innehåller cmdletenGet-JobTrigger. EttGet-Commandkommando som innehåller jokertecken anses vara identifiering och utlöser inte import av en modul.Använd cmdleten Get-Help för att få hjälp med en cmdlet. Om du till exempel skriver
Get-Help Get-WinEventimporteras modulen Microsoft.PowerShell.Diagnostics som innehållerGet-WinEvent-cmdleten.
För att stödja automatisk import av moduler hämtar cmdleten Get-Command alla cmdletar och funktioner i alla installerade moduler, även om modulen inte importeras till sessionen. Mer information finns i hjälpavsnittet för cmdleten Get-Command.
Importprocessen
När en modul importeras skapas ett nytt sessionstillstånd för modulen och ett System.Management.Automation.PSModuleInfo-objekt skapas i minnet. Ett sessionstillstånd skapas för varje modul som importeras (detta inkluderar rotmodulen och eventuella kapslade moduler). De medlemmar som exporteras från rotmodulen, inklusive alla medlemmar som exporterades till rotmodulen av alla kapslade moduler, importeras sedan till anroparens sessionstillstånd.
Metadata för medlemmar som exporteras från en modul har en ModuleName-egenskap. Den här egenskapen fylls i med namnet på modulen som exporterade dem.
Varning
Om namnet på en exporterad medlem använder ett verb som inte godkänts eller om namnet på medlemmen använder begränsade tecken visas en varning när cmdleten Import-Module körs.
Som standard returnerar cmdleten Import-Module inga objekt till pipelinen. Cmdleten stöder dock en PassThru- parameter som kan användas för att returnera ett System.Management.Automation.PSModuleInfo- objekt för varje modul som importeras. Om du vill skicka utdata till värden ska användarna köra cmdleten Write-Host.
Begränsa de medlemmar som importeras
När en modul importeras med hjälp av cmdleten Import-Module importeras som standard alla exporterade modulmedlemmar till sessionen, inklusive kommandon som exporteras till modulen av en kapslad modul. Som standard exporteras inte variabler och alias. Om du vill begränsa de medlemmar som exporteras använder du ett modulmanifest. Om du vill begränsa de medlemmar som importeras använder du följande parametrar i cmdleten Import-Module.
Function: Den här parametern begränsar de funktioner som exporteras. (Om du använder ett modulmanifest läser du nyckeln FunctionsToExport.)
` Cmdlet: Den här parametern begränsar de cmdletar som exporteras (Om du använder ett modulmanifest läser du nyckeln CmdletsToExport.)
Variabel: Den här parametern begränsar de variabler som exporteras (Om du använder ett modulmanifest läser du nyckeln VariablesToExport.)
Alias: Den här parametern begränsar de alias som exporteras (Om du använder ett modulmanifest läser du nyckeln AliasesToExport.)