Freigeben über


Import-Module

Fügt der aktuellen Sitzung Module hinzu.

Syntax

Name (Standardwert)

Import-Module
    [-Name] <String[]>
    [-Global]
    [-Prefix <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>]

PSSession

Import-Module
    [-Name] <String[]>
    -PSSession <PSSession>
    [-Global]
    [-Prefix <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>]

CimSession

Import-Module
    [-Name] <String[]>
    -CimSession <CimSession>
    [-Global]
    [-Prefix <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>]
    [-CimResourceUri <Uri>]
    [-CimNamespace <String>]
    [<CommonParameters>]

UseWindowsPowerShell

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>]

FullyQualifiedName

Import-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]

FullyQualifiedNameAndPSSession

Import-Module
    [-FullyQualifiedName] <ModuleSpecification[]>
    -PSSession <PSSession>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]

FullyQualifiedNameAndUseWindowsPowerShell

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>]

Assembly

Import-Module
    [-Assembly] <Assembly[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]

ModuleInfo

Import-Module
    [-ModuleInfo] <PSModuleInfo[]>
    [-Global]
    [-Prefix <String>]
    [-Function <String[]>]
    [-Cmdlet <String[]>]
    [-Variable <String[]>]
    [-Alias <String[]>]
    [-Force]
    [-SkipEditionCheck]
    [-PassThru]
    [-AsCustomObject]
    [-ArgumentList <Object[]>]
    [-DisableNameChecking]
    [-NoClobber]
    [-Scope <String>]
    [<CommonParameters>]

Beschreibung

Das Cmdlet Import-Module 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 Befehl Import-Module verwenden, um ein Modul zu importieren. Sie können den automatischen Modulimport mithilfe der einstellungsvariablen $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 Modulmitglieder in Ihrer Sitzung verwenden. Weitere Informationen zu Modulen finden Sie unter about_Modules.

Standardmäßig importiert Import-Module alle Elemente, die das Modul exportiert, aber Sie können die Parameter Alias, Function, Cmdletund Variable Parameter verwenden, um einzuschränken, welche Member importiert werden. Der NoClobber--Parameter verhindert, dass Import-Module Member importieren, die dieselben Namen wie Mitglieder in der aktuellen Sitzung haben.

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 Remotecomputer mit aktiviertem PowerShell-Remoting verwalten, indem Sie eine PSSession- auf dem Remotecomputer erstellen. Verwenden Sie dann den PSSession Parameter von Import-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 Sie Import-Module verwenden, um Common Information Model(CIM)-Module zu 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 parameter CimSession von 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 (Windows Management Instrumentation, 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 cmdlet Get-Module ruft die PSDiagnostics und Dism Module ab und speichert die Objekte in der variablen $m. Der parameter ListAvailable ist erforderlich, wenn Sie Module abrufen, die noch nicht in die Sitzung importiert werden.

Der ModuleInfo Parameter 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, dass Import-Module den Fortschritt beim Laden des Moduls melden. Ohne den Verbose, PassThruoder AsCustomObject Parameter generiert Import-Module keine Ausgabe, wenn ein Modul importiert wird.

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, Variableund Cmdlet Parameter verwenden, um andere Elemente einzuschränken, die ein Modul importiert.

Das cmdlet Get-Module ruft das Objekt ab, das das PSDiagnostics Modul darstellt. Die ExportedCmdlets-Eigenschaft listet alle Cmdlets auf, die das Modul exportiert, auch wenn 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 Cmdlets Get-Command werden die Befehle angezeigt, die aus dem PSDiagnostics Modul importiert wurden. Die Ergebnisse bestätigen, dass nur die cmdlets Disable-PSTrace und 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, der Elementnamen ein Präfix hinzugefügt und dann die präfixierten Membernamen angezeigt. Der parameter Prefix von Import-Module fügt das präfix x allen Elementen 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 Modulmmber richtig vorangestellt wurden.

Beispiel 7: Abrufen und Verwenden eines benutzerdefinierten Objekts

In diesem Beispiel wird veranschaulicht, wie das von Import-Modulezurückgegebene benutzerdefinierte Objekt abgerufen und verwendet wird.

Benutzerdefinierte Objekte enthalten synthetische Member, 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 Verwendung der Skriptmethode eines Objekts entspricht dem Angeben des vollqualifizierten Namens eines importierten Elements, einschließlich des Modulnamens.

Der AsCustomObject Parameter kann nur beim Importieren eines Skriptmoduls verwendet werden. Verwenden Sie Get-Module, um zu bestimmen, 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 skriptmodul Show-Calendar wird mithilfe des parameters AsCustomObject importiert, um ein benutzerdefiniertes Objekt anzufordern, und der PassThru Parameter, um das Objekt zurückzugeben. Das resultierende benutzerdefinierte Objekt wird in der variablen $a gespeichert.

Die $a Variable wird an das cmdlet Get-Member 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 Force von Import-Module 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 parameter Prefix.

Ohne den Parameter "Force" enthält die Sitzung zwei Kopien jedes PSDiagnostics Cmdlet, 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 gezeigt, wie Befehle ausgeführt werden, die von importierten Befehlen ausgeblendet wurden. Das TestModule Modul enthält eine Funktion namens 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 cmdlet Get-Date gibt ein DateTime-Objekt mit dem aktuellen Datum zurück. Nach dem Importieren des TestModule- Moduls gibt Get-Date das Jahr und den Tag des Jahres zurück.

Mithilfe des All-Parameters von Get-Command alle Get-Date Befehle in der Sitzung anzeigen. Die Ergebnisse zeigen, dass es zwei Get-Date Befehle in der Sitzung gibt, eine Funktion aus dem TestModule Modul und ein Cmdlet aus dem Microsoft.PowerShell.Utility Modul.

Da Funktionen Vorrang vor Cmdlets haben, wird die Get-Date-Funktion aus dem TestModule Modul ausgeführt, anstelle des cmdlets Get-Date. Um die ursprüngliche Version von Get-Dateauszufü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. Es verwendet den MinimumVersion Parameter von Import-Module, um nur 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 Parameter des schlüsselworts #Requires 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 der FullyQualifiedNameimportiert.

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 das cmdlet Import-Module verwenden, um ein Modul von einem Remotecomputer zu 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 variablen $s gespeichert.

Das Ausführen Get-Module mit dem parameter PSSession zeigt an, dass das NetSecurity Modul installiert und auf dem Remotecomputer verfügbar ist. Dieser Befehl entspricht der Verwendung des cmdlets Invoke-Command zum Ausführen Get-Module Befehls in der Remotesitzung. Beispiel:

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

Wenn Sie Import-Module mit dem PSSession Parameter ausführen, wird das NetSecurity Modul vom Remotecomputer in die aktuelle Sitzung importiert. Das cmdlet Get-Command ruft Befehle ab, die mit Get beginnen und Firewall aus dem modul NetSecurity einschließen. Die Ausgabe bestätigt, dass das Modul und die zugehörigen Cmdlets in die aktuelle Sitzung importiert wurden.

Als Nächstes ruft das Cmdlet Get-NetFirewallRule Die Firewallregeln der Windows-Remoteverwaltung auf dem computer Server01 ab. Dies entspricht der Verwendung des cmdlets Invoke-Command zum Ausführen von Get-NetFirewallRule in der Remotesitzung.

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 Cmdlet New-CimSession erstellt eine Sitzung auf dem Remotecomputer mit dem Namen RSDGF03. Die Sitzung stellt eine Verbindung mit dem WMI-Dienst auf dem Remotecomputer bereit. Die CIM-Sitzung wird in der variablen $cs gespeichert. Import-Module verwendet die CimSession- in $cs, um das Storage CIM-Modul vom computer RSDGF03 zu importieren.

Das cmdlet Get-Command zeigt den befehl Get-Disk im modul Storage 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 Trennzeichen getrennte Liste von Aliasen ein. Platzhalterzeichen sind zulässig.

Einige Module exportieren ausgewählte Aliase automatisch in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie zwischen den exportierten Aliasen auswählen.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-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 verweisen, Args. Weitere Informationen zum Verhalten von ArgumentListfinden Sie unter about_Splatting.

Parametereigenschaften

Typ:

Object[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Argumente

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-AsCustomObject

Gibt an, dass dieses Cmdlet ein benutzerdefiniertes Objekt mit Elementen zurückgibt, die die importierten Modulmember darstellen. Dieser Parameter ist nur für Skriptmodule gültig.

Wenn Sie den parameter AsCustomObject verwenden, importiert Import-Module 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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 einen Befehl, der Assemblyobjekte erstellt. Sie können ein Assemblyobjekt auch an Import-Modulepfeifen.

Wenn Sie diesen Parameter verwenden, werden nur die von den angegebenen Assemblys implementierten Cmdlets und Anbieter importiert. 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.

Parametereigenschaften

Typ:

Assembly[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Assembly
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 Modulermittlung.

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.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

CimSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-CimResourceUri

Gibt einen alternativen Speicherort für CIM-Module an. Der Standardwert ist der Ressourcen-URI des WMI-Anbieters der Modulermittlung 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.

Parametereigenschaften

Typ:Uri
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

CimSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:CimSession
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

CimSession
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 ausgewählte Cmdlets automatisch in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie zwischen den exportierten Cmdlets auswählen.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-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 Typ Get-Verb, um die Liste der genehmigten Verben anzuzeigen.

Diese Meldung ist nur eine Warnung. Das vollständige Modul wird weiterhin importiert, einschließlich der nicht konformen Befehle. Obwohl die Meldung für Modulbenutzer angezeigt wird, sollte das Benennungsproblem vom Modulautor behoben werden.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 parameter "Force" kann den Fehler nicht außer Kraft setzen. Sie müssen eine neue Sitzung starten, um die neue Version zu laden.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 die PSModulePath- nach dem angegebenen Modul.

Eine Modulspezifikation ist eine Hashtabelle mit den folgenden Schlüsseln.

  • ModuleName - Erforderlicher Gibt den Modulnamen an.
  • GUID - Optionaler Gibt die GUID des Moduls an.
  • Außerdem Erforderlicher, um mindestens einen der drei folgenden Tasten anzugeben.
    • ModuleVersion – Gibt eine akzeptable Mindestversion 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.

Parametereigenschaften

Typ:

ModuleSpecification[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

FullyQualifiedName
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
FullyQualifiedNameAndPSSession
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
FullyQualifiedNameAndWinCompat
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 ausgewählte Funktionen automatisch in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie zwischen den exportierten Funktionen auswählen.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-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 Import-Module Cmdlet standardmäßig über die Eingabeaufforderung, skriptdatei oder scriptblock aufgerufen wird, werden alle Befehle in den globalen Sitzungszustand importiert.

Wenn Import-Module Cmdlet aus einem anderen Modul aufgerufen wird, importiert Import-Module die Befehle in einem Modul, einschließlich Befehle aus geschachtelten Modulen, in den Sitzungszustand des aufrufenden Moduls.

Tipp

Sie sollten vermeiden, Import-Module innerhalb eines Moduls aufzurufen. 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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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, gibt Import-Module einen Fehler zurück.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Name
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
PSSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
WinCompat
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 MinimumVersion Parameternamen oder dessen Alias, Version. Wenn keine Version qualifiziert ist, generiert Import-Module einen Fehler.

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.

Parametereigenschaften

Typ:Version
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Version

Parametersätze

Name
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
PSSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
WinCompat
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 modulobjekte auch an Import-Modulepfeifen.

Parametereigenschaften

Typ:

PSModuleInfo[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ModuleInfo
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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. eine .psd1, .psm1, .dlloder .ps1 Datei. Dateipfade sind optional. Platzhalterzeichen sind nicht erlaubt. Sie können auch Modulnamen und Dateinamen an Import-Modulepipen.

Wenn Sie einen Pfad weglassen, sucht Import-Module nach dem Modul in den Pfaden, die in der umgebungsvariablen $Env:PSModulePath gespeichert sind.

Geben Sie nach Möglichkeit nur den Modulnamen 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

Während es möglich ist, eine Skriptdatei (.ps1) als Modul zu importieren, sind Skriptdateien in der Regel nicht wie Skriptmoduldatei (.psm1) Datei strukturiert. Das Importieren einer Skriptdatei garantiert nicht, dass sie als Modul verwendet werden kann. Weitere Informationen finden Sie unter about_Modules.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

Name
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
PSSession
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimSession
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
WinCompat
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-NoClobber

Verhindert das Importieren von Befehlen mit denselben Namen wie vorhandene Befehle in der aktuellen Sitzung. Standardmäßig importiert Import-Module alle exportierten Modulbefehle.

Befehle mit denselben Namen können Befehle in der Sitzung ausblenden oder ersetzen. Um Befehlsnamenkonflikte in einer Sitzung zu vermeiden, verwenden Sie die Parameter Präfix oder NoClobber Parameter. 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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:NoOverwrite

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-PassThru

Gibt ein Objekt zurück, das das importierte Modul darstellt. Standardmäßig generiert dieses Cmdlet keine Ausgabe.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 Member in der Sitzung denselben 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-UTCDatebekannt und wird nicht mit dem ursprünglichen cmdlet Get-Date verwechselt.

Der Wert dieses Parameters hat Vorrang vor der DefaultCommandPrefix- Eigenschaft des Moduls, die das Standardpräfix angibt.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Wenn Sie ein Modul aus einer anderen Sitzung in die aktuelle Sitzung importieren, können Sie die Cmdlets aus dem Modul in der aktuellen Sitzung verwenden, genau wie Cmdlets aus einem lokalen Modul. 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 cmdlets Import-PSSession zum Importieren bestimmter Module aus einer Sitzung.

Import-Module können keine Haupt-PowerShell-Module aus einer anderen Sitzung importieren. Die Wichtigsten PowerShell-Module weisen Namen auf, die mit Microsoft.PowerShell beginnen.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Parametereigenschaften

Typ:PSSession
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

PSSession
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
FullyQualifiedNameAndPSSession
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-RequiredVersion

Gibt eine Version des Moduls an, das dieses Cmdlet importiert. Wenn die Version nicht installiert ist, generiert Import-Module einen Fehler.

Standardmäßig importiert Import-Module das Modul, ohne die Versionsnummer zu überprüfen.

Verwenden Sie zum Angeben einer Mindestversion den Parameter MinimumVersion. 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.

Parametereigenschaften

Typ:Version
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Name
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
PSSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
WinCompat
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Scope

Gibt einen Bereich an, in den das Modul importiert werden soll.

Die zulässigen Werte für diesen Parameter sind:

  • Global. Verfügbar für alle Befehle in der Sitzung. Entspricht dem Parameter Global.
  • Ortsgebunden. Nur im aktuellen Bereich verfügbar.

Wenn Import-Module Cmdlet standardmäßig über die Eingabeaufforderung, skriptdatei oder scriptblock aufgerufen wird, werden alle Befehle in den globalen Sitzungszustand importiert. Sie können den parameter -Scope Local verwenden, um Modulinhalte in den Skript- oder Skriptblockbereich zu importieren.

Wenn sie aus einem anderen Modul aufgerufen wird, importiert Import-Module Cmdlet die Befehle in einem Modul, einschließlich Befehle aus geschachtelten Modulen, in den Sitzungszustand des Aufrufers. Wenn Sie -Scope Global oder -Global angeben, wird angegeben, 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.

Parametereigenschaften

Typ:String
Standardwert:None
Zulässige Werte:Local, Global
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 keine Core im CompatiblePSEditions Manifestfeld angibt.

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, 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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Name
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
PSSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
FullyQualifiedName
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
FullyQualifiedNameAndPSSession
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
Assembly
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ModuleInfo
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-UseWindowsPowerShell

Lädt das Modul mithilfe der Windows PowerShell-Kompatibilitätsfunktionalität. Weitere Informationen finden Sie unter about_Windows_PowerShell_Compatibility.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:UseWinPS

Parametersätze

WinCompat
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
FullyQualifiedNameAndWinCompat
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Variable

Gibt ein Array von Variablen an, das dieses Cmdlet aus dem Modul in die aktuelle Sitzung importiert. Geben Sie eine Liste von Variablen ein. Platzhalterzeichen sind zulässig.

Einige Module exportieren ausgewählte Variablen automatisch in Ihre Sitzung, wenn Sie das Modul importieren. Mit diesem Parameter können Sie aus den exportierten Variablen auswählen.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:True
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

String

Sie können einen Modulnamen an dieses Cmdlet weiterleiten.

PSModuleInfo

Sie können ein Modulobjekt an dieses Cmdlet weiterleiten.

Assembly

Sie können ein Assemblyobjekt an dieses Cmdlet weiterleiten.

Ausgaben

None

Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.

PSModuleInfo

Wenn Sie den PassThru--Parameter angeben, generiert das Cmdlet ein System.Management.Automation.PSModuleInfo-Objekt, das das importierte Modul darstellt.

PSCustomObject

Wenn Sie die AsCustomObject- und PassThru Parameter 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 eingeschlossen werden. Weitere Informationen finden Sie unter about_Modules.

    Sie können auch die parameter PSSession und CimSession 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 cmdlet Update-FormatData, um die Formatierungsdaten für Befehle zu aktualisieren, die aus einem Modul importiert wurden. Wenn sich die Formatierungsdatei für ein Modul ändert, verwenden Sie das Cmdlet Update-FormatData, um die Formatierungsdaten für importierte Befehle zu aktualisieren. 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 ältere Sitzungen in späteren Versionen von PowerShell erstellen, werden die Kernbefehle in Snap-Ins (PSSnapins) verpackt. Die Ausnahme ist Microsoft.PowerShell.Core, die immer ein Snap-In ist. Außerdem sind Remotesitzungen, z. B. die vom Cmdlet New-PSSession gestarteten 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, gibt Import-Module eine Fehlermeldung wie die folgende zurück.

    Import-Module : Gemischte Modusassembly basiert auf Version 'v2.0.50727' der Laufzeit und kann nicht in der 4.0-Laufzeit ohne zusätzliche Konfigurationsinformationen 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 dann den Befehl Import-Module erneut.

    powershell.exe -Version 2.0

  • Um das CIM-Sitzungsfeature zu verwenden, muss der Remotecomputer über WS-Management Remoting und die Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) verfügen, was die Microsoft-Implementierung des Standards Common Information Model (CIM) ist. Der Computer muss auch über den WMI-Anbieter für Module Discovery oder einen alternativen CIM-Anbieter verfügen, der über die gleichen grundlegenden Features verfügt.

    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.

  • Standardmäßig importiert 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.

    In einem untergeordneten Bereich schränkt -Scope Local den Import auf diesen Bereich und alle untergeordneten Bereiche ein. Ü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. Verwenden Sie Get-Command -Module modulename, um zu sehen, welche Member im aktuellen Bereich geladen werden.

  • Import-Module lädt keine Klassen- und Enumerationsdefinitionen im Modul. Verwenden Sie die using 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 mithilfe von Import-Module mit 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 einer using-Anweisung importiert wurden, können nicht entladen werden.