Import-Module
Fügt der aktuellen Sitzung Module hinzu.
Syntax
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Name] <String[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <Version>]
[-MaximumVersion <String>]
[-RequiredVersion <Version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-CimSession <CimSession>
[-CimResourceUri <Uri>]
[-CimNamespace <String>]
[<CommonParameters>]
Import-Module
[-Name] <string[]>
-UseWindowsPowerShell
[-Global]
[-Prefix <string>]
[-Function <string[]>]
[-Cmdlet <string[]>]
[-Variable <string[]>]
[-Alias <string[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-MinimumVersion <version>]
[-MaximumVersion <string>]
[-RequiredVersion <version>]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <string>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-FullyQualifiedName] <ModuleSpecification[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
-PSSession <PSSession>
[<CommonParameters>]
Import-Module
[-FullyQualifiedName] <ModuleSpecification[]>
-UseWindowsPowerShell
[-Global]
[-Prefix <string>]
[-Function <string[]>]
[-Cmdlet <string[]>]
[-Variable <string[]>]
[-Alias <string[]>]
[-Force]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <string>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Assembly] <Assembly[]>
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Import-Module
[-Global]
[-Prefix <String>]
[-Function <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[-Force]
[-SkipEditionCheck]
[-PassThru]
[-AsCustomObject]
[-ModuleInfo] <PSModuleInfo[]>
[-ArgumentList <Object[]>]
[-DisableNameChecking]
[-NoClobber]
[-Scope <String>]
[<CommonParameters>]
Beschreibung
Das Import-Module
Cmdlet fügt der aktuellen Sitzung mindestens ein Modul hinzu. Ab PowerShell 3.0 werden installierte Module automatisch in die Sitzung importiert, wenn Sie Befehle oder Anbieter im Modul verwenden. Sie können jedoch weiterhin den Import-Module
Befehl verwenden, um ein Modul zu importieren.
Sie können den automatischen Modulimport mithilfe der Einstellungsvariable $PSModuleAutoloadingPreference
deaktivieren. Weitere Informationen zur Variable $PSModuleAutoloadingPreference
finden Sie unter about_Preference_Variables.
Ein Modul ist ein Paket, das Elemente enthält, die in PowerShell verwendet werden können. Mitglieder umfassen Cmdlets, Anbieter, Skripts, Funktionen, Variablen und andere Tools und Dateien. Nachdem ein Modul importiert wurde, können Sie die Modulelemente in der Sitzung verwenden. Weitere Informationen zu Modulen finden Sie unter about_Modules.
Importiert standardmäßig alle Elemente, Import-Module
die das Modul exportiert, Sie können jedoch die Parameter Alias, Function, Cmdlet und Variable verwenden, um einzuschränken, welche Member importiert werden. Der Parameter NoClobber verhindert Import-Module
das Importieren von Mitgliedern mit denselben Namen wie Member in der aktuellen Sitzung.
Import-Module
importiert ein Modul nur in die aktuelle Sitzung. Um das Modul in jede neue Sitzung zu importieren, fügen Sie Ihrem PowerShell-Profil einen Import-Module
Befehl hinzu. Weitere Informationen zu Profilen finden Sie unter about_Profiles.
Sie können Remote-Windows-Computer verwalten, auf denen PowerShell-Remoting aktiviert ist, indem Sie eine PSSession auf dem Remotecomputer erstellen. Verwenden Sie dann den PSSession-ParameterImport-Module
, um die Module zu importieren, die auf dem Remotecomputer installiert sind. Wenn Sie die importierten Befehle in der aktuellen Sitzung verwenden, werden die Befehle implizit auf dem Remotecomputer ausgeführt.
Ab Windows PowerShell 3.0 können Import-Module
Sie Common Information Model(CIM)-Module importieren. CIM-Module definieren Cmdlets in CDXML-Dateien (Cmdlet Definition XML). Mit diesem Feature können Sie Cmdlets verwenden, die in nicht verwalteten Codeassemblys implementiert sind, z. B. in C++ geschriebene.
Für Remotecomputer, auf denen PowerShell-Remoting nicht aktiviert ist, einschließlich Computern, die nicht das Windows-Betriebssystem ausführen, können Sie den CIMSession-Parameter Import-Module
verwenden, um CIM-Module vom Remotecomputer zu importieren. Die importierten Befehle werden implizit auf dem Remotecomputer ausgeführt. Eine CIMSession ist eine Verbindung mit der Windows-Verwaltungsinstrumentation (WMI) auf dem Remotecomputer.
Beispiele
Beispiel 1: Importieren der Member eines Moduls in die aktuelle Sitzung
In diesem Beispiel werden die Member des PSDiagnostics-Moduls in die aktuelle Sitzung importiert.
Import-Module -Name PSDiagnostics
Beispiel 2: Importieren aller vom Modulpfad angegebenen Module
In diesem Beispiel werden alle verfügbaren Module im Pfad importiert, der durch die $env:PSModulePath
Umgebungsvariable in die aktuelle Sitzung angegeben wird.
Get-Module -ListAvailable | Import-Module
Beispiel 3: Importieren der Mitglieder mehrerer Module in die aktuelle Sitzung
In diesem Beispiel werden die Member der PSDiagnostics - und Dism-Module in die aktuelle Sitzung importiert.
$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m
Das Get-Module
Cmdlet ruft die PSDiagnostics- und Dism-Module ab und speichert die Objekte in der $m
Variablen. Der Parameter ListAvailable ist erforderlich, wenn Sie Module abrufen, die noch nicht in die Sitzung importiert werden.
Der Parameter ModuleInfo von Import-Module
wird verwendet, um die Module in die aktuelle Sitzung zu importieren.
Beispiel 4: Importieren aller module, die durch einen Pfad angegeben wurden
In diesem Beispiel wird ein expliziter Pfad verwendet, um das zu importierende Modul zu identifizieren.
Import-Module -Name c:\ps-test\modules\test -Verbose
VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.
Die Verwendung des Verbose-Parameters bewirkt Import-Module
, dass der Fortschritt beim Laden des Moduls angezeigt wird.
Ohne den Parameter Import-Module
"Verbose", "PassThru" oder "AsCustomObject" wird beim Importieren eines Moduls keine Ausgabe generiert.
Beispiel 5: Einschränken von Modulmembern, die in eine Sitzung importiert wurden
In diesem Beispiel wird gezeigt, wie Sie einschränken, welche Modulmitglieder in die Sitzung importiert werden, und wie sich dieser Befehl auf die Sitzung auswirkt. Der Parameter Function beschränkt die Elemente, die aus dem Modul importiert werden. Sie können auch die Parameter Alias, Variable und Cmdlet verwenden, um andere Elemente einzuschränken, die ein Modul importiert.
Das Get-Module
Cmdlet ruft das Objekt ab, das das PSDiagnostics-Modul darstellt. Die ExportCmdlets-Eigenschaft listet alle Cmdlets auf, die das Modul exportiert, obwohl sie nicht alle importiert wurden.
Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands
Key Value
--- -----
Disable-PSTrace Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace Disable-WSManTrace
Enable-PSTrace Enable-PSTrace
Enable-PSWSManCombinedTrace Enable-PSWSManCombinedTrace
Enable-WSManTrace Enable-WSManTrace
Get-LogProperties Get-LogProperties
Set-LogProperties Set-LogProperties
Start-Trace Start-Trace
Stop-Trace Stop-Trace
Get-Command -Module PSDiagnostics
CommandType Name Version Source
----------- ---- ------- ------
Function Disable-PSTrace 6.1.0.0 PSDiagnostics
Function Enable-PSTrace 6.1.0.0 PSDiagnostics
Mit dem Parameter "Module" des Get-Command
Cmdlets werden die Befehle angezeigt, die aus dem PSDiagnostics-Modul importiert wurden. Die Ergebnisse bestätigen, dass nur die Disable-PSTrace
Cmdlets Enable-PSTrace
importiert wurden.
Beispiel 6: Importieren der Member eines Moduls und Hinzufügen eines Präfixes
In diesem Beispiel wird das PSDiagnostics-Modul in die aktuelle Sitzung importiert, den Membernamen ein Präfix hinzugefügt und dann die präfixierten Membernamen angezeigt. Der Präfixparameter fügt Import-Module
das x
Präfix allen Membern hinzu, die aus dem Modul importiert werden. Das Präfix gilt nur für die Mitglieder in der aktuellen Sitzung. Das Modul wird nicht geändert. Der PassThru-Parameter gibt ein Modulobjekt zurück, das das importierte Modul darstellt.
Import-Module PSDiagnostics -Prefix x -PassThru
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 6.1.0.0 PSDiagnostics {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...
Get-Command -Module PSDiagnostics
CommandType Name Version Source
----------- ---- ------- ------
Function Disable-xPSTrace 6.1.0.0 PSDiagnostics
Function Disable-xPSWSManCombinedTrace 6.1.0.0 PSDiagnostics
Function Disable-xWSManTrace 6.1.0.0 PSDiagnostics
Function Enable-xPSTrace 6.1.0.0 PSDiagnostics
Function Enable-xPSWSManCombinedTrace 6.1.0.0 PSDiagnostics
Function Enable-xWSManTrace 6.1.0.0 PSDiagnostics
Function Get-xLogProperties 6.1.0.0 PSDiagnostics
Function Set-xLogProperties 6.1.0.0 PSDiagnostics
Function Start-xTrace 6.1.0.0 PSDiagnostics
Function Stop-xTrace 6.1.0.0 PSDiagnostics
Get-Command
ruft die Elemente ab, die aus dem Modul importiert wurden. Die Ausgabe zeigt, dass die Modulelemente ordnungsgemäß mit dem Präfix versehen wurden.
Beispiel 7: Abrufen und Verwenden eines benutzerdefinierten Objekts
In diesem Beispiel wird veranschaulicht, wie das von Import-Module
< a0> zurückgegebene benutzerdefinierte Objekt abgerufen und verwendet wird.
Benutzerdefinierte Objekte beinhalten synthetische Elemente, die jedes der importierten Modulelemente darstellen. Beispielsweise werden die Cmdlets und Funktionen in einem Modul in Skriptmethoden des benutzerdefinierten Objekts konvertiert.
Benutzerdefinierte Objekte sind bei der Skripterstellung nützlich. Sie sind auch hilfreich, wenn mehrere importierte Objekte dieselben Namen haben. Die Skriptmethode eines Objekts entspricht der Angabe des vollqualifizierten Namens eines importierten Elements, darunter der Modulname.
Der Parameter AsCustomObject kann nur beim Importieren eines Skriptmoduls verwendet werden. Hiermit bestimmen Sie Get-Module
, welche der verfügbaren Module ein Skriptmodul ist.
Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize
Name ModuleType
---- ----------
Show-Calendar Script
BitsTransfer Manifest
PSDiagnostics Manifest
TestCmdlets Script
...
$a = Import-Module -Name Show-Calendar -AsCustomObject -PassThru
$a | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();
$a."Show-Calendar"()
Das Show-Calendar
Skriptmodul wird mithilfe des AsCustomObject-Parameters importiert, um ein benutzerdefiniertes Objekt und den PassThru-Parameter anzufordern, um das Objekt zurückzugeben. Das resultierende benutzerdefinierte Objekt wird in der $a
Variablen gespeichert.
Die $a
Variable wird an das Get-Member
Cmdlet weitergeleitet, um die Eigenschaften und Methoden des gespeicherten Objekts anzuzeigen. Die Ausgabe zeigt eine Show-Calendar
Skriptmethode an.
Um die Show-Calendar
Skriptmethode aufzurufen, muss der Methodenname in Anführungszeichen eingeschlossen werden, da der Name einen Bindestrich enthält.
Beispiel 8: Erneutes Importieren eines Moduls in dieselbe Sitzung
In diesem Beispiel wird gezeigt, wie Sie den Parameter Import-Module
Force verwenden, wenn Sie ein Modul in dieselbe Sitzung importieren. Der Parameter Force entfernt das geladene Modul und importiert es dann erneut.
Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS
Der erste Befehl importiert das PSDiagnostics-Modul . Der zweite Befehl importiert das Modul erneut, diesmal mit dem Präfixparameter .
Ohne den Parameter Force enthält die Sitzung zwei Kopien jedes PSDiagnostics-Cmdlets , eines mit dem Standardnamen und eines mit dem präfixierten Namen.
Beispiel 9: Ausführen von Befehlen, die durch importierte Befehle ausgeblendet wurden
In diesem Beispiel wird veranschaulicht, wie Befehle ausgeführt werden, die von importierten Befehlen ausgeblendet wurden. Das Modul TestModule enthält eine Funktion, Get-Date
die das Jahr und den Tag des Jahres zurückgibt.
Get-Date
Thursday, August 15, 2019 2:26:12 PM
Import-Module TestModule
Get-Date
19227
Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize
CommandType Name ModuleName
----------- ---- ----------
Function Get-Date TestModule
Cmdlet Get-Date Microsoft.PowerShell.Utility
Microsoft.PowerShell.Utility\Get-Date
Thursday, August 15, 2019 2:28:31 PM
Das erste Get-Date
Cmdlet gibt ein DateTime-Objekt mit dem aktuellen Datum zurück. Gibt nach dem Importieren des TestModule-Moduls Get-Date
das Jahr und den Tag des Jahres zurück.
Verwenden des Parameters "Alle " der Get-Command
Anzeige aller Get-Date
Befehle in der Sitzung. Die Ergebnisse zeigen, dass es zwei Get-Date
Befehle in der Sitzung gibt, eine Funktion aus dem TestModule-Modul und ein Cmdlet aus dem Modul "Microsoft.PowerShell.Utility ".
Da Funktionen Vorrang vor Cmdlets haben, wird die Get-Date
Funktion aus dem TestModule-Modul anstelle des Get-Date
Cmdlets ausgeführt. Um die ursprüngliche Version von Get-Date
auszuführen, müssen Sie den Befehlsnamen mit dem Modulnamen qualifizieren.
Weitere Informationen zur Rangfolge von Befehlen in PowerShell finden Sie unter about_Command_Precedence.
Beispiel 10: Importieren einer Mindestversion eines Moduls
In diesem Beispiel wird das PowerShellGet-Modul importiert. Der Parameter "MinimumVersion" wird Import-Module
verwendet, um nur die Version 2.0.0
oder höher des Moduls zu importieren.
Import-Module -Name PowerShellGet -MinimumVersion 2.0.0
Sie können auch den Parameter RequiredVersion verwenden, um eine bestimmte Version eines Moduls zu importieren, oder die Parameter "Module" und "Version" des #Requires
Schlüsselworts verwenden, um eine bestimmte Version eines Moduls in einem Skript zu erfordern.
Beispiel 11: Importieren mit einem vollqualifizierten Namen
In diesem Beispiel wird eine bestimmte Version eines Moduls mithilfe von FullyQualifiedName importiert.
PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version
Name Version
---- -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1
PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }
Beispiel 12: Importieren mithilfe eines vollqualifizierten Pfads
In diesem Beispiel wird eine bestimmte Version eines Moduls mithilfe des vollqualifizierten Pfads importiert.
PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path
Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1
PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'
Beispiel 13: Importieren eines Moduls von einem Remotecomputer
In diesem Beispiel wird gezeigt, wie Sie mithilfe des Import-Module
Cmdlets ein Modul von einem Remotecomputer importieren.
Dieser Befehl verwendet das Feature "Implizites Remoting" von PowerShell.
Wenn Sie Module aus einer anderen Sitzung importieren, können Sie die Cmdlets in der aktuellen Sitzung verwenden. Befehle, die die Cmdlets verwenden, werden jedoch in der Remotesitzung ausgeführt.
$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity
ModuleType Name ExportedCommands
---------- ---- ----------------
Manifest NetSecurity {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...
Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*
CommandType Name ModuleName
----------- ---- ----------
Function Get-NetFirewallAddressFilter NetSecurity
Function Get-NetFirewallApplicationFilter NetSecurity
Function Get-NetFirewallInterfaceFilter NetSecurity
Function Get-NetFirewallInterfaceTypeFilter NetSecurity
Function Get-NetFirewallPortFilter NetSecurity
Function Get-NetFirewallProfile NetSecurity
Function Get-NetFirewallRule NetSecurity
Function Get-NetFirewallSecurityFilter NetSecurity
Function Get-NetFirewallServiceFilter NetSecurity
Function Get-NetFirewallSetting NetSecurity
Get-NetFirewallRule -DisplayName "Windows Remote Management*" |
Format-Table -Property DisplayName, Name -AutoSize
DisplayName Name
----------- ----
Windows Remote Management (HTTP-In) WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In) WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP
New-PSSession
erstellt eine Remotesitzung (PSSession) auf dem Server01
Computer. Die PSSession wird in der $s
Variablen gespeichert.
Die Ausführung Get-Module
mit dem PSSession-Parameter zeigt, dass das NetSecurity-Modul installiert und auf dem Remotecomputer verfügbar ist. Dieser Befehl entspricht der Verwendung des Invoke-Command
Cmdlets zum Ausführen Get-Module
des Befehls in der Remotesitzung. Zum Beispiel:
Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity
Wird Import-Module
mit dem PSSession-Parameter ausgeführt, wird das NetSecurity-Modul vom Remotecomputer in die aktuelle Sitzung importiert. Das Get-Command
Cmdlet ruft Befehle ab, die mit Get
dem NetSecurity-Modul beginnen und enthaltenFirewall
. Die Ausgabe bestätigt, dass das Modul und die zugehörigen Cmdlets in die aktuelle Sitzung importiert wurden.
Als Nächstes ruft das Cmdlet Die Firewallregeln der Get-NetFirewallRule
Windows-Remoteverwaltung auf dem Server01
Computer ab. Dies entspricht der Verwendung des Invoke-Command
Cmdlets, das auf der Remotesitzung ausgeführt werden soll Get-NetFirewallRule
.
Beispiel 14: Verwalten des Speichers auf einem Remotecomputer ohne windows-Betriebssystem
In diesem Beispiel hat der Administrator des Computers den Modulermittlungs-WMI-Anbieter installiert, mit dem Sie CIM-Befehle verwenden können, die für den Anbieter entwickelt wurden.
Das New-CimSession
Cmdlet erstellt eine Sitzung auf dem Remotecomputer namens RSDGF03. Die Sitzung stellt eine Verbindung mit dem WMI-Dienst auf dem Remotecomputer bereit. Die CIM-Sitzung wird in der $cs
Variablen gespeichert.
Import-Module
verwendet die CimSession zum $cs
Importieren des Storage CIM-Moduls RSDGF03
vom Computer.
Das Get-Command
Cmdlet zeigt den Get-Disk
Befehl im Speichermodul an. Wenn Sie ein CIM-Modul in die lokale Sitzung importieren, konvertiert PowerShell die CDXML-Dateien für jeden Befehl in PowerShell-Skripts, die als Funktionen in der lokalen Sitzung angezeigt werden.
Obwohl Get-Disk
in die lokale Sitzung eingegeben wird, wird das Cmdlet implizit auf dem Remotecomputer ausgeführt, von dem es importiert wurde. Der Befehl gibt Objekte vom Remotecomputer an die lokale Sitzung zurück.
$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into
# PowerShell scripts. These appear as functions in the local session.
Get-Command Get-Disk
CommandType Name ModuleName
----------- ---- ----------
Function Get-Disk Storage
# Use implicit remoting to query disks on the remote computer from which the
# module was imported.
Get-Disk
Number Friendly Name OperationalStatus Total Size Partition Style
------ ------------- ----------------- ---------- ---------------
0 Virtual HD ATA Device Online 40 GB MBR
Parameter
-Alias
Gibt die Aliase an, die dieses Cmdlet aus dem Modul in die aktuelle Sitzung importiert. Geben Sie eine durch Kommas getrennte Liste der Aliase ein. Platzhalterzeichen sind zulässig.
Einige Module exportieren automatisch ausgewählte Aliase in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Aliasen treffen.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-ArgumentList
Gibt ein Array von Argumenten oder Parameterwerten an, die während des Import-Module
Befehls an ein Skriptmodul übergeben werden. Dieser Parameter ist nur gültig, wenn Sie ein Skriptmodul importieren.
Sie können auch auf den ArgumentList-Parameter anhand des Alias, der Argumente verweisen. Weitere Informationen zum Verhalten von ArgumentList finden Sie unter about_Splatting.
Typ: | Object[] |
Aliase: | Args |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-AsCustomObject
Gibt an, dass dieses Cmdlet ein benutzerdefiniertes Objekt mit Elementen zurückgibt, die die importierten Modulmember darstellen. Dieser Parameter gilt nur für Skriptmodule.
Wenn Sie den Parameter AsCustomObject verwenden, Import-Module
importiert die Modulmember in die Sitzung und gibt dann ein PSCustomObject-Objekt anstelle eines PSModuleInfo-Objekts zurück. Sie können das benutzerdefinierte Objekt in einer Variablen speichern und die Memberzugriffsenumeration verwenden, um die Member aufzurufen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Assembly
Gibt ein Array von Assemblyobjekten an. Dieses Cmdlet importiert die in den angegebenen Assemblyobjekten implementierten Cmdlets und Anbieter. Geben Sie eine Variable ein, die Assemblyobjekte enthält, oder geben Sie einen Befehl ein, mit dem die Assemblyobjekte erstellt werden. Sie können ein Assemblyobjekt auch an Import-Module
.
Wenn Sie diesen Parameter verwenden, werden nur die Cmdlets und Anbieter importiert, die durch die angegebenen Assemblys implementiert wurden. Wenn das Modul andere Dateien enthält, werden sie nicht importiert, und möglicherweise fehlen wichtige Elemente des Moduls. Verwenden Sie diesen Parameter zum Debuggen und Testen des Moduls oder wenn Sie angewiesen werden, es vom Modulautor zu verwenden.
Typ: | Assembly[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-CimNamespace
Gibt den Namespace eines alternativen CIM-Anbieters an, der CIM-Module verfügbar macht. Der Standardwert ist der Namespace des WMI-Anbieters für die Modulerkennung.
Verwenden Sie diesen Parameter, um CIM-Module von Computern und Geräten zu importieren, auf denen kein Windows-Betriebssystem ausgeführt wird.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CimResourceUri
Gibt einen alternativen Speicherort für die CIM-Module an. Der Standardwert ist der Ressourcen-URI des WMI-Anbieters für die Modulerkennung auf dem Remotecomputer.
Verwenden Sie diesen Parameter, um CIM-Module von Computern und Geräten zu importieren, auf denen kein Windows-Betriebssystem ausgeführt wird.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | Uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CimSession
Gibt eine CIM-Sitzung auf dem Remotecomputer an. Geben Sie eine Variable ein, die die CIM-Sitzung oder einen Befehl enthält, der die CIM-Sitzung abruft, z. B. einen Get-CimSession-Befehl .
Import-Module
verwendet die CIM-Sitzungsverbindung, um Module vom Remotecomputer in die aktuelle Sitzung zu importieren. Wenn Sie die Befehle aus dem importierten Modul in der aktuellen Sitzung verwenden, werden die Befehle auf dem Remotecomputer ausgeführt.
Sie können diesen Parameter verwenden, um Module von Computern und Geräten zu importieren, auf denen das Windows-Betriebssystem nicht ausgeführt wird, und Windows-Computer mit PowerShell, aber keine PowerShell-Remoting aktiviert haben.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | CimSession |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Cmdlet
Gibt ein Array von Cmdlets an, das dieses Cmdlet aus dem Modul in die aktuelle Sitzung importiert. Platzhalterzeichen sind zulässig.
Einige Module exportieren automatisch ausgewählte Cmdlets in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Cmdlets treffen.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-DisableNameChecking
Gibt an, dass dieses Cmdlet die Meldung unterdrückt, die Sie warnt, wenn Sie ein Cmdlet oder eine Funktion importieren, deren Name ein nicht genehmigtes Verb oder ein unzulässiges Zeichen enthält.
Wenn ein Modul, das Sie importieren, Cmdlets oder Funktionen exportiert, die nicht genehmigte Verben in ihren Namen enthalten, zeigt PowerShell standardmäßig die folgende Warnmeldung an:
WARNUNG: Einige importierte Befehlsnamen enthalten nicht genehmigte Verben, die sie möglicherweise weniger auffindbar machen. Verwenden Sie den Verbose-Parameter für weitere Details, oder geben Sie „Get-Verb“ ein, um die Liste der zulässigen Verben anzuzeigen.
Dabei handelt es sich nur um eine Warnung. Es wird trotzdem das gesamte Modul einschließlich nicht konformer Befehle importiert. Obwohl die Meldung für Modulbenutzer angezeigt wird, sollte das Namensproblem vom Modulautor behoben werden.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Dieser Parameter bewirkt, dass ein Modul über dem aktuellen Modul geladen oder neu geladen wird. Einige Module laden externe Assemblys. Der Import schlägt fehl, wenn Sie ein Modul importieren, das eine neuere Version einer Assembly lädt. Der Force-Parameter kann den Fehler nicht außer Kraft setzen. Sie müssen eine neue Sitzung starten, um die neue Version zu laden.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-FullyQualifiedName
Der Wert kann ein Modulname, eine vollständige Modulspezifikation oder ein Pfad zu einer Moduldatei sein.
Wenn der Wert ein Pfad ist, kann der Pfad vollqualifizierte oder relativ sein. Ein relativer Pfad wird relativ zum Skript aufgelöst, das die using-Anweisung enthält.
Wenn es sich bei dem Wert um einen Namen oder eine Modulspezifikation handelt, durchsucht PowerShell den PSModulePath nach dem angegebenen Modul.
Eine Modulspezifikation ist eine Hashtabelle mit den folgenden Schlüsseln.
ModuleName
- Erforderlich . Gibt den Modulnamen an.GUID
- Optional Gibt die GUID des Moduls an.- Es ist auch erforderlich , mindestens eine der drei folgenden Tasten anzugeben.
ModuleVersion
- Gibt eine mindestens akzeptable Version des Moduls an.MaximumVersion
- Gibt die maximal zulässige Version des Moduls an.RequiredVersion
- Gibt eine genaue, erforderliche Version des Moduls an. Dies kann nicht mit den anderen Versionsschlüsseln verwendet werden.
Typ: | ModuleSpecification[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Function
Gibt ein Array von Funktionen an, das dieses Cmdlet aus dem Modul in die aktuelle Sitzung importiert. Platzhalterzeichen sind zulässig. Einige Module exportieren automatisch ausgewählte Funktionen in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Funktionen treffen.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
-Global
Gibt an, dass dieses Cmdlet Module in den globalen Sitzungszustand importiert, sodass sie für alle Befehle in der Sitzung verfügbar sind.
Wenn das Cmdlet standardmäßig Import-Module
über die Eingabeaufforderung, skriptdatei oder scriptblock aufgerufen wird, werden alle Befehle in den globalen Sitzungszustand importiert.
Wenn sie aus einem anderen Modul aufgerufen wird, Import-Module
importiert cmdlet die Befehle in einem Modul, einschließlich Befehle aus geschachtelten Modulen, in den Sitzungszustand des aufrufenden Moduls.
Tipp
Sie sollten das Aufrufen Import-Module
innerhalb eines Moduls vermeiden. Deklarieren Sie das Zielmodul stattdessen als geschachteltes Modul im Manifest des übergeordneten Moduls. Durch das Deklarieren geschachtelter Module wird die Auffindbarkeit von Abhängigkeiten verbessert.
Der Parameter "Global" entspricht dem Parameter "Scope" mit dem Wert " Global".
Verwenden Sie zum Einschränken der Befehle, die ein Modul exportiert, einen Export-ModuleMember
Befehl im Skriptmodul.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MaximumVersion
Gibt eine maximale Version an. Dieses Cmdlet importiert nur eine Version des Moduls, die kleiner oder gleich dem angegebenen Wert ist. Wenn keine Version qualifiziert ist, Import-Module
wird ein Fehler zurückgegeben.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-MinimumVersion
Gibt eine Mindestversion an. Dieses Cmdlet importiert nur eine Version des Moduls, die größer oder gleich dem angegebenen Wert ist. Verwenden Sie den Parameternamen "MinimumVersion " oder den Alias " Version". Wenn keine Version qualifiziert ist, Import-Module
wird ein Fehler generiert.
Verwenden Sie den Parameter "RequiredVersion ", um eine genaue Version anzugeben. Sie können auch die Parameter "Module" und "Version " des schlüsselworts #Requires verwenden, um eine bestimmte Version eines Moduls in einem Skript zu erfordern.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | Version |
Aliase: | Version |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ModuleInfo
Gibt ein Array von zu importierenden Modulobjekten an. Geben Sie eine Variable ein, die die Modulobjekte enthält, oder einen Befehl, der die Modulobjekte abruft, z. B. den folgenden Befehl: Get-Module -ListAvailable
Sie können auch Modulobjekte an Import-Module
.
Typ: | PSModuleInfo[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt die Namen der zu importierenden Module an. Geben Sie den Namen des Moduls oder den Namen einer Datei in das Modul ein, z. B. ein .psd1
, .psm1
, oder .dll
.ps1
eine Datei. Dateipfade sind optional. Wildcardzeichen sind nicht zulässig. Sie können auch Modulnamen und Dateinamen an Import-Module
.
Wenn Sie einen Pfad weglassen, sucht das Modul in den Pfaden, Import-Module
die in der $env:PSModulePath
Umgebungsvariable gespeichert sind.
Geben Sie nach Möglichkeit nur den Namen des Moduls an. Wenn Sie einen Dateinamen angeben, werden nur die Elemente importiert, die in dieser Datei implementiert sind. Wenn das Modul andere Dateien enthält, werden sie nicht importiert, und möglicherweise fehlen wichtige Elemente des Moduls.
Hinweis
Obwohl es möglich ist, eine Skriptdatei (.ps1
) als Modul zu importieren, sind Skriptdateien in der Regel nicht wie Skriptmodule-Datei (.psm1
) strukturiert. Das Importieren einer Skriptdatei garantiert nicht, dass sie als Modul verwendet werden kann. Weitere Informationen finden Sie unter about_Modules.
Typ: | String[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
-NoClobber
Verhindert das Importieren von Befehlen mit denselben Namen wie vorhandene Befehle in der aktuellen Sitzung. Importiert standardmäßig Import-Module
alle exportierten Modulbefehle.
Befehle mit denselben Namen können Befehle in der Sitzung ausblenden oder ersetzen. Verwenden Sie die Parameter "Prefix" oder "NoClobber ", um Befehlsnamenkonflikte in einer Sitzung zu vermeiden. Weitere Informationen zu Namenskonflikten und Befehlsrangfolgen finden Sie unter "Module and Name Conflicts" in about_Modules und about_Command_Precedence.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | SwitchParameter |
Aliase: | NoOverwrite |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PassThru
Gibt ein Objekt zurück, das das importierte Modul darstellt. Standardmäßig generiert dieses Cmdlet keine Ausgabe.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Prefix
Gibt ein Präfix an, das dieses Cmdlet den Substantiven in den Namen importierter Modulmember hinzufügt.
Verwenden Sie diesen Parameter, um Namenskonflikte zu vermeiden, die auftreten können, wenn verschiedene Elemente in der Sitzung den gleichen Namen haben. Dieser Parameter ändert das Modul nicht, und es wirkt sich nicht auf Dateien aus, die das Modul für seine eigene Verwendung importiert. Diese werden als geschachtelte Module bezeichnet. Dieses Cmdlet betrifft nur die Namen von Mitgliedern in der aktuellen Sitzung.
Wenn Sie z. B. das Präfix UTC angeben und dann ein Get-Date
Cmdlet importieren, wird das Cmdlet in der Sitzung als Get-UTCDate
, und es wird nicht mit dem ursprünglichen Get-Date
Cmdlet verwechselt.
Der Wert dieses Parameters hat Vorrang vor der DefaultCommandPrefix-Eigenschaft des Moduls, die das Standardpräfix angibt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PSSession
Gibt eine vom Benutzer verwaltete PowerShell-Sitzung (PSSession) an, aus der dieses Cmdlet Module in die aktuelle Sitzung importiert. Geben Sie eine Variable ein, die eine PSSession oder einen Befehl enthält, der eine PSSession abruft, z. B. einen Get-PSSession
Befehl.
Beim Importieren eines Moduls aus einer anderen Sitzung in die aktuelle Sitzung können Sie die Cmdlets aus dem Modul in der aktuellen Sitzung verwenden, so wie Sie Cmdlets aus einem lokalen Modul verwenden würden. Befehle, die die Remote-Cmdlets verwenden, werden in der Remotesitzung ausgeführt, aber die Remotingdetails werden im Hintergrund von PowerShell verwaltet.
Dieser Parameter verwendet das Feature "Implizites Remoting" von PowerShell. Es entspricht der Verwendung des Import-PSSession
Cmdlets zum Importieren bestimmter Module aus einer Sitzung.
Import-Module
Kern-PowerShell-Module können nicht aus einer anderen Sitzung importiert werden. Die Wichtigsten PowerShell-Module weisen Namen auf, die mit Microsoft.PowerShell beginnen.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | PSSession |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-RequiredVersion
Gibt eine Version des Moduls an, das dieses Cmdlet importiert. Wenn die Version nicht installiert ist, Import-Module
wird ein Fehler generiert.
Importiert das Modul standardmäßig, Import-Module
ohne die Versionsnummer zu überprüfen.
Verwenden Sie den Parameter "MinimumVersion ", um eine Mindestversion anzugeben. Sie können auch die Parameter "Module" und "Version " des schlüsselworts #Requires verwenden, um eine bestimmte Version eines Moduls in einem Skript zu erfordern.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Skripts, die RequiredVersion verwenden, um Module zu importieren, die in vorhandenen Versionen des Windows-Betriebssystems enthalten sind, werden in zukünftigen Versionen des Windows-Betriebssystems nicht automatisch ausgeführt. Dies liegt daran, dass powerShell-Modulversionsnummern in zukünftigen Versionen des Windows-Betriebssystems höher sind als Modulversionsnummern in vorhandenen Versionen des Windows-Betriebssystems.
Typ: | Version |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Scope
Gibt einen Bereich an, in den das Modul importiert werden soll.
Zulässige Werte für diesen Parameter:
- Global. Für alle Befehle in der Sitzung verfügbar. Entspricht dem Global-Parameter .
- Lokal. Nur im aktuellen Bereich verfügbar.
Wenn das Cmdlet standardmäßig Import-Module
über die Eingabeaufforderung, skriptdatei oder scriptblock aufgerufen wird, werden alle Befehle in den globalen Sitzungszustand importiert. Sie können den -Scope Local
Parameter verwenden, um Modulinhalte in den Skript- oder Skriptblockbereich zu importieren.
Wenn sie aus einem anderen Modul aufgerufen wird, Import-Module
importiert cmdlet die Befehle in einem Modul, einschließlich Befehle aus geschachtelten Modulen, in den Sitzungszustand des Aufrufers. Gibt -Scope Global
an, -Global
dass dieses Cmdlet Module in den globalen Sitzungszustand importiert, sodass sie für alle Befehle in der Sitzung verfügbar sind.
Der Parameter "Global" entspricht dem Parameter "Scope" mit dem Wert " Global".
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | String |
Zulässige Werte: | Local, Global |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SkipEditionCheck
Überspringt die Überprüfung des CompatiblePSEditions
Felds.
Ermöglicht das Laden eines Moduls aus dem "$($env:windir)\System32\WindowsPowerShell\v1.0\Modules"
Modulverzeichnis in PowerShell Core, wenn dieses Modul nicht im CompatiblePSEditions
Manifestfeld angegeben Core
wird.
Beim Importieren eines Moduls aus einem anderen Pfad bewirkt dieser Schalter nichts, da die Überprüfung nicht ausgeführt wird. Unter Linux und macOS bewirkt dieser Switch nichts.
Weitere Informationen finden Sie unter about_PowerShell_Editions.
Warnung
Import-Module -SkipEditionCheck
ist wahrscheinlich immer noch nicht erfolgreich, um ein Modul zu importieren. Auch wenn dies erfolgreich ist, schlägt das Aufrufen eines Befehls aus dem Modul später fehl, wenn versucht wird, eine inkompatible API zu verwenden.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UseWindowsPowerShell
Lädt das Modul mithilfe der Windows PowerShell-Kompatibilitätsfunktionalität. Weitere Informationen finden Sie unter about_Windows_PowerShell_Compatibility .
Typ: | SwitchParameter |
Aliase: | UseWinPS |
Position: | Named |
Standardwert: | False |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Variable
Gibt ein Array von Variablen an, das dieses Cmdlet aus dem Modul in die aktuelle Sitzung importiert. Geben Sie eine Liste der Variablen ein. Platzhalterzeichen sind zulässig.
Einige Module exportieren automatisch ausgewählte Variablen in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie eine Auswahl aus den exportierten Variablen treffen.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | True |
Eingaben
Sie können einen Modulnamen an dieses Cmdlet weiterleiten.
Sie können ein Modulobjekt an dieses Cmdlet weiterleiten.
Sie können ein Assemblyobjekt an dieses Cmdlet weiterleiten.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Wenn Sie den PassThru-Parameter angeben, generiert das Cmdlet ein System.Management.Automation.PSModuleInfo -Objekt, das das importierte Modul darstellt.
Wenn Sie die Parameter AsCustomObject und PassThru zusammen angeben, generiert das Cmdlet ein PSCustomObject-Objekt , das das Modul darstellt.
Hinweise
PowerShell enthält die folgenden Aliase für Import-Module
:
Alle Plattformen:
ipmo
Bevor Sie ein Modul importieren können, muss das Modul auf Ihren lokalen Computer zugreifen und in die Umgebungsvariable
PSModulePath
einbezogen werden. Weitere Informationen finden Sie unter about_Modules.Sie können auch die PSSession - und CIMSession-Parameter verwenden, um Module zu importieren, die auf Remotecomputern installiert sind. Befehle, die die Cmdlets in diesen Modulen verwenden, werden jedoch in der Remotesitzung auf dem Remotecomputer ausgeführt.
Wenn Sie Mitglieder mit demselben Namen und demselben Typ in Ihre Sitzung importieren, verwendet PowerShell standardmäßig das zuletzt importierte Element. Variablen und Aliase werden ersetzt, und auf die Originale kann nicht zugegriffen werden. Funktionen, Cmdlets und Anbieter werden lediglich von den neuen Membern schattiert. Auf sie kann zugegriffen werden, indem sie den Befehlsnamen mit dem Namen des Snap-Ins, Moduls oder Funktionspfads qualifizieren.
Verwenden Sie das
Update-FormatData
Cmdlet, um die Formatierungsdaten für Befehle zu aktualisieren, die aus einem Modul importiert wurden. Wenn sich die Formatierungsdatei für ein Modul ändert, aktualisieren Sie mit demUpdate-FormatData
Cmdlet die Formatierungsdaten für importierte Befehle. Sie müssen das Modul nicht erneut importieren.Ab Windows PowerShell 3.0 werden die mit PowerShell installierten Kernbefehle in Modulen verpackt. In Windows PowerShell 2.0 und in Hostprogrammen, die sitzungen im älteren Stil in späteren Versionen von PowerShell erstellen, werden die Kernbefehle in Snap-Ins (PSSnapins) verpackt. Die Ausnahme ist Microsoft.PowerShell.Core, bei dem es sich immer um ein Snap-In handelt. Außerdem sind Remotesitzungen, z. B. die vom Cmdlet gestarteten
New-PSSession
Sitzungen, ältere Sitzungen, die Kern-Snap-Ins enthalten.Informationen zur CreateDefault2-Methode , die neuere Sitzungen mit Kernmodulen erstellt, finden Sie in der CreateDefault2-Methode.
In Windows PowerShell 2.0 wurden einige Eigenschaftswerte des Modulobjekts, z. B. die ExportCmdlets - und NestedModules-Eigenschaftswerte , erst aufgefüllt, nachdem das Modul importiert wurde.
Wenn Sie versuchen, ein Modul zu importieren, das Assemblys mit gemischtem Modus enthält, die nicht mit Windows PowerShell 3.0+ kompatibel sind,
Import-Module
wird eine Fehlermeldung wie die folgende zurückgegeben.Import-Module: Gemischte Modusassembly basiert auf Version 'v2.0.50727' der Laufzeit und kann nicht ohne zusätzliche Konfigurationsinformationen in der 4.0-Laufzeit geladen werden.
Dieser Fehler tritt auf, wenn ein Modul, das für Windows PowerShell 2.0 entwickelt wurde, mindestens eine Gemischtmodulassembly enthält. Eine gemischte Modulassembly, die verwalteten und nicht verwalteten Code enthält, z. B. C++ und C#.
Um ein Modul zu importieren, das Assemblys mit gemischtem Modus enthält, starten Sie Windows PowerShell 2.0 mit dem folgenden Befehl, und versuchen Sie
Import-Module
es dann erneut.PowerShell.exe -Version 2.0
Um die CIM-Sitzung zu verwenden, müssen auf dem Remotecomputer WS-Management-Remoting und Windows-Verwaltungsinstrumentation (WMI) verfügbar sein, wobei es sich um die Microsoft-Implementierung des Common Information Model (CIM)-Standards handelt. Der Computer muss auch den WMI-Anbieter für die Modulerkennung oder einen anderen CIM-Anbieter haben, der die gleichen grundlegenden Funktionen hat.
Sie können das CIM-Sitzungsfeature auf Computern verwenden, auf denen kein Windows-Betriebssystem und auf Windows-Computern mit PowerShell ausgeführt werden, aber keine PowerShell-Remoting aktiviert ist.
Sie können auch die CIM-Parameter verwenden, um CIM-Module von Computern abzurufen, auf denen PowerShell-Remoting aktiviert ist, einschließlich des lokalen Computers. Wenn Sie eine CIM-Sitzung auf dem lokalen Computer erstellen, verwendet PowerShell DCOM anstelle von WMI, um die Sitzung zu erstellen.
Importiert standardmäßig
Import-Module
Module im globalen Bereich, auch wenn sie von einem untergeordneten Bereich aufgerufen werden. Der Bereich der obersten Ebene und alle untergeordneten Bereiche haben Zugriff auf die exportierten Elemente des Moduls.Beschränkt den Import in einem untergeordneten Bereich
-Scope Local
auf diesen Bereich und alle untergeordneten Bereiche. Übergeordnete Bereiche sehen dann die importierten Member nicht.Hinweis
Get-Module
zeigt alle Module an, die in der aktuellen Sitzung geladen wurden. Dies schließt Module ein, die lokal in einem untergeordneten Bereich geladen wurden. Hier erfahren SieGet-Command -Module modulename
, welche Elemente im aktuellen Bereich geladen werden.Import-Module
klassen- und Enumerationsdefinitionen werden nicht im Modul geladen. Verwenden Sie dieusing module
Anweisung am Anfang Ihres Skripts. Dadurch wird das Modul importiert, einschließlich der Klassen- und Enumerationsdefinitionen. Weitere Informationen finden Sie unter about_Using.Bei der Entwicklung eines Skriptmoduls ist es üblich, Änderungen am Code vorzunehmen und dann die neue Version des Moduls mit
Import-Module
dem Parameter Force zu laden. Dies funktioniert nur für Änderungen an Funktionen im Stammmodul.Import-Module
lädt keine geschachtelten Module neu. Außerdem gibt es keine Möglichkeit, aktualisierte Klassen oder Enumerationen zu laden.Um aktualisierte Modulmmber zu erhalten, die in geschachtelten Modulen definiert sind, entfernen Sie das Modul mit
Remove-Module
, und importieren Sie das Modul erneut.Wenn das Modul mit einer
using
Anweisung geladen wurde, müssen Sie eine neue Sitzung starten, um aktualisierte Definitionen für die Klassen und Enumerationen zu importieren. Klassen und Enumerationen, die in PowerShell definiert und mit einerusing
Anweisung importiert wurden, können nicht entladen werden.