Freigeben über


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]
      [-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]
      [-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]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-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]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-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. Die Module, die Sie importieren, müssen auf dem lokalen Computer oder einem Remotecomputer installiert sein.

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, und Sie können den automatischen Modulimport mithilfe der Einstellungsvariablen $PSModuleAutoloadingPreference aktivieren und deaktivieren. Weitere Informationen zu Modulen finden Sie unter about_Modules. Weitere Informationen zur $PSModuleAutoloadingPreference Variablen 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.

Verwenden Sie zum Importieren eines Moduls die Parameter Name, Assembly, ModuleInfo, MinimumVersion und RequiredVersion , um das zu importierende Modul zu identifizieren. Importiert standardmäßig alle Elemente, Import-Module die das Modul exportiert. Sie können jedoch die Parameter Alias, Function, Cmdlet und Variable verwenden, um die importierten Member einzuschränken. Sie können auch den NoClobber-Parameter verwenden, um das Importieren von Membern zu verhindern Import-Module , die denselben Namen wie Member in der aktuellen Sitzung haben.

Import-Module importiert ein Modul nur in die aktuelle Sitzung. Um das Modul in alle Sitzungen zu importieren, fügen Sie Ihrem PowerShell-Profil einen Befehl hinzu Import-Module . Weitere Informationen zu Profilen finden Sie unter about_Profiles.

Ab Windows PowerShell 3.0 können Sie CIM-Module (Common Information Model) importierenImport-Module, in denen die Cmdlets in CDXML-Dateien (Cmdlet Definition XML) definiert sind. Diese Funktion ermöglicht es Ihnen, Cmdlets zu verwenden, die in Assemblys mit nicht verwaltetem Code implementiert werden, z. B. in mit C++ geschriebenen Assemblys.

Mit diesen neuen Features Import-Module wird das Cmdlet zu einem primären Tool für die Verwaltung heterogener Unternehmen, zu denen Computer gehören, auf denen das Windows-Betriebssystem ausgeführt wird, und Computer, auf denen andere Betriebssysteme ausgeführt werden.

Um Remotecomputer zu verwalten, auf denen das Windows-Betriebssystem ausgeführt wird, auf denen PowerShell- und PowerShell-Remoting aktiviert ist, erstellen Sie eine PSSession auf dem Remotecomputer, und verwenden Sie dann den PSSession-Parameter von Get-Module , um die PowerShell-Module in der PSSession abzurufen. Wenn Sie die Module importieren und dann die importierten Befehle in der aktuellen Sitzung verwenden, werden die Befehle implizit in der PSSession auf dem Remotecomputer ausgeführt. Mit dieser Strategie können Sie den Remotecomputer verwalten.

Sie können eine ähnliche Strategie verwenden, um Computer zu verwalten, auf denen PowerShell-Remoting nicht aktiviert ist, einschließlich Computern, auf denen das Windows-Betriebssystem nicht ausgeführt wird, und Windows-Computer, auf denen PowerShell-Remoting nicht aktiviert ist.

Erstellen Sie zunächst eine CIM-Sitzung auf dem Remotecomputer, bei der es sich um eine Verbindung mit der Windows-Verwaltungsinstrumentation (WMI) auf dem Remotecomputer handelt. Verwenden Sie dann den CIMSession-Parameter von, Import-Module um CIM-Module vom Remotecomputer zu importieren. Wenn Sie ein CIM-Modul importieren und dann die importierten Befehle ausführen, werden die Befehle implizit auf dem Remotecomputer ausgeführt. Mit dieser WMI- und CIM-Strategie können Sie den Remotecomputer verwalten.

Beispiele

Beispiel 1: Importieren der Elemente eines Moduls in die aktuelle Sitzung

In diesem Beispiel werden die Member des Moduls PSDiagnostics in die aktuelle Sitzung importiert. Der Name des Parameternamens ist optional und kann weggelassen werden.

Import-Module -Name PSDiagnostics

Beim Importieren eines Moduls wird standardmäßig Import-Module keine Ausgabe generiert. Verwenden Sie zum Anfordern der Ausgabe den PassThru-Parameter oder den AsCustomObject-Parameter oder die allgemeinen Verbose-Parameter.

Beispiel 2: Importieren aller im Modulpfad angegebenen Module

In diesem Beispiel werden alle verfügbaren Module in dem von der $env:PSModulePath Umgebungsvariablen angegebenen Pfad in die aktuelle Sitzung importiert.

Get-Module -ListAvailable | Import-Module

Beispiel 3: Importieren der Elemente mehrerer Module in die aktuelle Sitzung

In diesem Beispiel werden die Member der Module PSDiagnostics und Dism in die aktuelle Sitzung importiert.

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

Das Get-Module Cmdlet ruft die Module PSDiagnostics und Dism ab und speichert die Objekte in der $m Variablen. Der ListAvailable-Parameter ist erforderlich, wenn Sie Module abrufen, die noch nicht in die Sitzung importiert wurden.

Der ModuleInfo-Parameter von Import-Module wird verwendet, um die Module in die aktuelle Sitzung zu importieren.

Diese Befehle entsprechen der Verwendung eines Pipelineoperators (|), um die Ausgabe eines Get-Module Befehls an zu Import-Modulesenden.

Beispiel 4: Importieren aller durch einen Pfad angegebenen Module

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 führt Import-Module zum Melden des Fortschritts beim Laden des Moduls. Ohne den Parameter Import-ModuleVerbose, PassThru oder AsCustomObject wird beim Importieren eines Moduls keine Ausgabe generiert.

Beispiel 5: Einschränken von Modulmitgliedern, 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.

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

Der erste Befehl importiert nur die Disable-PSTrace Cmdlets und Enable-PSTrace aus dem PSDiagnostics-Modul . Der Funktionsparameter schränkt die Elemente ein, 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 MODUL PSDiagnostics darstellt. Die ExportsCmdlets-Eigenschaft listet alle Cmdlets auf, die das Modul exportiert, obwohl sie nicht alle importiert wurden.

Im dritten Befehl ruft der Module-Parameter des Get-Command Cmdlets die Befehle ab, die aus dem PSDiagnostics-Modul importiert wurden. Die Ergebnisse bestätigen, dass nur die Disable-PSTrace Cmdlets und Enable-PSTrace importiert wurden.

Beispiel 6: Importieren der Elemente 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 vorangestellten Membernamen angezeigt. Das Präfix gilt nur für die Member in der aktuellen Sitzung. Es ändert nicht das Modul.

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

Es verwendet den Prefix-Parameter von Import-Module fügt das Präfix x allen Elementen hinzu, die aus dem Modul importiert werden, und dem PassThru-Parameter , um ein Modulobjekt zurückzugeben, das das importierte Modul darstellt.

Das Get-Command Cmdlet zum Abrufen der Elemente, 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

Diese Befehle veranschaulichen das Abrufen und Verwenden des benutzerdefinierten Objekts, das von Import-Module zurückgegeben 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 sehr nützlich bei der Skripterstellung. Sie sind außerdem nützlich, wenn mehrere importierte Objekte die gleichen Namen haben. Die Skriptmethode eines Objekts entspricht der Angabe des vollqualifizierten Namens eines importierten Elements, darunter der Modulname.

Der AsCustomObject-Parameter kann nur verwendet werden, wenn Sie ein Skriptmodul importieren, damit die erste Aufgabe darin besteht, zu ermitteln, welches 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"()

Der erste Befehl verwendet das Get-Module Cmdlet, um die verfügbaren Module abzurufen. Der Befehl verwendet einen Pipelineoperator, um die Modulobjekte an das Format-Table Cmdlet zu übergeben, das den Namen und Den Modultyp jedes Moduls in einer Tabelle auflistet.

Der zweite Befehl verwendet das Import-Module Cmdlet, um das Skriptmodul Show-Calendar zu importieren. Der Befehl verwendet den AsCustomObject-Parameter , um ein benutzerdefiniertes Objekt anzufordern, und der PassThru-Parameter , um das Objekt zurückzugeben. Der Befehl speichert das resultierende benutzerdefinierte Objekt in der $a Variablen.

Der dritte Befehl verwendet einen Pipelineoperator, um die $a Variable an das Get-Member Cmdlet zu senden, das die Eigenschaften und Methoden des PSCustomObject in $aabruft. Die Ausgabe zeigt eine Show-Calendar()- Skriptmethode.

Der letzte Befehl verwendet die Show-Calendar-Skriptmethode. Der Methodenname muss in Anführungszeichen eingeschlossen werden, da er einen Bindestrich enthält.

Beispiel 8: Erneutes Importieren eines Moduls in dieselbe Sitzung

In diesem Beispiel wird gezeigt, wie Sie den Force-Parameter von Import-Module verwenden, wenn Sie ein Modul erneut in dieselbe Sitzung importieren.

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

Der erste Befehl importiert das PSDiagnostics-Modul . Der zweite Befehl importiert das Modul erneut, dieses Mal mit dem Prefix-Parameter.

Mit dem Force-ParameterImport-Module wird das Modul entfernt und dann erneut importiert. Ohne diesen Parameter würde die Sitzung zwei Kopien jedes PSDiagnostics-Cmdlets enthalten, eine mit dem Standardnamen und eine 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 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:26:12 PM

Das erste Get-Datecmdlet returns a **DateTime** object with the current date. After importing the **TestModule** module,Get-Date gibt das Jahr und den Tag des Jahres zurück.

Mit dem All-Parameter von Get-Command erhalten wir alle 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

Import-Module -Name PSWorkflow -MinimumVersion 3.0.0.0

Dieser Befehl importiert das PSWorkflow-Modul . Es verwendet den MinimumVersion-Parameter von Import-Module , um nur Version 3.0.0.0 oder höher des Moduls zu importieren.

Sie können auch den RequiredVersion-Parameter verwenden, um eine bestimmte Version eines Moduls zu importieren, oder die Parameter Module und Version des #Requires Schlüsselwort (keyword) verwenden, um eine bestimmte Version eines Moduls in einem Skript zu erfordern.

Beispiel 11: Importieren eines Moduls von einem Remotecomputer

In diesem Beispiel wird gezeigt, wie Sie das Import-Module Cmdlet 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 tatsächlich 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

Der erste Befehl verwendet das New-PSSession Cmdlet, um eine Remotesitzung (PSSession) für den Server01-Computer zu erstellen. Der Befehl speichert die PSSession in der $s Variablen.

Der zweite Befehl verwendet den PSSession-Parameter des Get-Module Cmdlets, um das NetSecurity-Modul in der Sitzung in der $s Variablen abzurufen. Dieser Befehl entspricht der Verwendung des Invoke-Command Cmdlets zum Ausführen eines Get-Module Befehls in der Sitzung in $s (Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity). Die Ausgabe zeigt, dass das NetSecurity-Modul auf dem Computer installiert ist und für die Sitzung in der $s Variablen verfügbar ist.

Der dritte Befehl verwendet den PSSession-Parameter des Import-Module Cmdlets, um das NetSecurity-Modul aus der Sitzung in der $s Variablen in die aktuelle Sitzung zu importieren.

Der vierte Befehl verwendet das Get-Command Cmdlet, um Befehle abzurufen, die mit Get beginnen und firewall aus dem NetSecurity-Modul enthalten. Die Ausgabe ruft die Befehle ab und bestätigt, dass das Modul und seine Cmdlets in die aktuelle Sitzung importiert wurden.

Der fünfte Befehl verwendet das Get-NetFirewallRule Cmdlet, um Firewallregeln für die Windows-Remoteverwaltung auf dem Server01-Computer abzurufen. Dieser Befehl entspricht der Verwendung des Invoke-Command Cmdlets zum Ausführen eines Get-NetFirewallRule Befehls für die Sitzung in der $s Variablen.

Beispiel 12: Verwalten des Speichers auf einem Remotecomputer ohne Windows-Betriebssystem

Da der Administrator des Computers in diesem Beispiel den WMI-Anbieter für die Modulerkennung installiert hat, können die CIM-Befehle die Standardwerte verwenden, für den Anbieter konzipiert wurden.

Mit den Befehlen in diesem Beispiel können Sie die Speichersysteme eines Remotecomputers verwalten, auf dem nicht das Windows-Betriebssystem ausgeführt wird.

Der erste Befehl verwendet das New-CimSession Cmdlet, um eine Sitzung auf dem RSDGF03 Remotecomputer zu erstellen. Die Sitzung stellt auf dem Remotecomputer eine Verbindung mit WMI her. Der Befehl speichert die CIM-Sitzung in der $cs Variablen.

Der zweite Befehl verwendet die CIM-Sitzung in der $cs Variablen, um einen Import-Module Befehl auf dem RSDGF03 Computer auszuführen. Der Befehl verwendet den Name-Parameter, um das Storage-CIM-Modul anzugeben.

Der dritte Befehl führt den Get-Command Befehl für den Get-Disk Befehl im Speichermodul aus. 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.

Der vierte Befehl führt den Get-Disk Befehl aus. Obwohl der Befehl in der lokalen Sitzung eingegeben wird, wird er implizit auf dem Remotecomputer ausgeführt, von dem er importiert wurde. Der Befehl ruft Objekte vom Remotecomputer ab und gibt sie 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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ArgumentList

Gibt ein Array von Argumenten oder Parameterwerten an, die während des Import-Module Befehls an ein Skriptmodul übergeben werden. Dieser Parameter gilt nur, wenn Sie ein Skriptmodul importieren.

Sie können auch auf den ArgumentList-Parameter durch seinen Alias args verweisen. Weitere Informationen finden Sie unter about_Aliases.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsCustomObject

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

Wenn Sie den AsCustomObject-Parameter verwenden, Import-Module importiert die Modulmember in die Sitzung und gibt dann anstelle eines PSModuleInfo-Objekts ein PSCustomObject-Objekt zurück. Sie können das benutzerdefinierte Objekt in einer Variablen speichern und die punktierte Schreibweise verwenden, um die Elemente aufzurufen.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Assembly

Gibt ein Array von Assemblyobjekten an. Dieses Cmdlet importiert die Cmdlets und Anbieter, die in den angegebenen Assemblyobjekten implementiert sind. Geben Sie eine Variable ein, die Assemblyobjekte enthält, oder geben Sie einen Befehl ein, mit dem die Assemblyobjekte erstellt werden. Sie können auch ein Assemblyobjekt an übergeben 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; möglicherweise fehlen wichtige Elemente des Moduls. Verwenden Sie diesen Parameter für das Debuggen und Testen des Moduls, oder wenn Sie dazu vom Modulautor aufgefordert werden.

Type:Assembly[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 zum Importieren von CIM-Modulen von Computern und Geräten, auf denen kein Windows-Betriebssystem ausgeführt wird.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimResourceUri

Gibt einen alternativen Speicherort für die CIM-Module an. Der Standardwert ist der Ressourcen-URI des WMI-Anbieters für die Modulermittlung auf dem Remotecomputer.

Verwenden Sie diesen Parameter zum Importieren von CIM-Modulen von Computern und Geräten, auf denen kein Windows-Betriebssystem ausgeführt wird.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

Gibt eine CIM-Sitzung auf dem Remotecomputer an. Geben Sie eine Variable ein, die die CIM-Sitzung enthält, oder einen Befehl, 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 tatsächlich auf dem Remotecomputer ausgeführt.

Sie können diesen Parameter verwenden, um Module von Computern und Geräten zu importieren, auf denen nicht das Windows-Betriebssystem ausgeführt wird, sowie von Windows-Computern, auf denen PowerShell, aber kein PowerShell-Remoting aktiviert ist.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:CimSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Cmdlet

Gibt ein Array von Cmdlets an, die 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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 verbotenes 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 möglicherweise weniger auffindbar sind. Verwenden Sie den Verbose-Parameter für weitere Details, oder geben Sie „Get-Verb“ ein, um die Liste der zulässigen Verben anzuzeigen.

Diese Meldung ist nur 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Dieser Parameter bewirkt, dass ein Modul über das aktuelle geladen oder neu geladen wird.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

Gibt den vollqualifizierten Namen der Modulspezifikation an.

Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 Import-Module das Cmdlet über die Eingabeaufforderung, die Skriptdatei oder den Skriptblock aufgerufen wird, werden standardmäßig alle Befehle in den globalen Sitzungszustand importiert.

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

Tipp

Sie sollten das Aufrufen Import-Module innerhalb eines Moduls vermeiden. Deklarieren Sie stattdessen das Zielmodul als geschachteltes Modul im Manifest des übergeordneten Moduls. Das Deklarieren geschachtelter Module verbessert die Auffindbarkeit von Abhängigkeiten.

Der Global-Parameter entspricht dem Scope-Parameter mit dem Wert Global.

Verwenden Sie einen Export-ModuleMember Befehl im Skriptmodul, um die Von einem Modul exportierten Befehle einzuschränken.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 generiert.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumVersion

Gibt eine Mindestversion an. Dieses Cmdlet importiert nur eine Version des Moduls, die größer oder gleich dem angegebenen Wert ist. Wenn keine Version qualifiziert ist, Import-Module wird ein Fehler generiert.

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

Verwenden Sie den MinimumVersion-Parameternamen oder dessen Alias Version.

Verwenden Sie zum Angeben einer genauen Version den RequiredVersion-Parameter. Sie können auch die Parameter Module und Version des #Requires Schlüsselwort (keyword) verwenden, um eine bestimmte Version eines Moduls in einem Skript zu erfordern.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:Version
Aliases:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleInfo

Gibt ein Array von Modulobjekten an, die importiert werden sollen. 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 übergeben Import-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Gibt die Namen der zu importierenden Module an. Geben Sie den Namen des Moduls oder den Namen einer Datei im Modul an, z. B. eine psd1-, psm1-, dll- oder ps1-Datei. Dateipfade sind optional. Platzhalterzeichen sind nicht zulässig. Sie können auch Modulnamen und Dateinamen an übergeben Import-Module.

Wenn Sie einen Pfad weglassen, Import-Module sucht das Modul in den Pfaden, 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 in dieser Datei implementierten Elemente importiert. Wenn das Modul andere Dateien enthält, werden sie nicht importiert; möglicherweise fehlen wichtige Elemente des Moduls.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-NoClobber

Gibt an, dass dieses Cmdlet keine Befehle importiert, die dieselben Namen wie vorhandene Befehle in der aktuellen Sitzung haben. Importiert standardmäßig Import-Module alle exportierten Modulbefehle.

Befehle mit den gleichen Namen können Befehle in der Sitzung ausblenden oder ersetzen. Um Konflikte bei Befehlsnamen in einer Sitzung zu vermeiden, verwenden Sie die Parameter Prefix oder NoClobber. Weitere Informationen (womöglich nur in englischer Sprache) zu Namenskonflikten und zur Befehlsrangfolge finden Sie unter „Module und Namenskonflikte“ in about_Modules und about_Command_Precedence.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Gibt ein Objekt zurück, das das Element darstellt, mit dem Sie arbeiten. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

Gibt ein Präfix an, das dieses Cmdlet den Substantiven in den Namen der importierten 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 wirkt sich nicht auf Dateien aus, die das Modul zur eigenen Verwendung importiert. Diese werden als geschachtelte Module bezeichnet. Dieses Cmdlet wirkt sich nur auf die Namen der Mitglieder in der aktuellen Sitzung aus.

Wenn Sie beispielsweise das Präfix UTC angeben und dann ein Get-Date Cmdlet importieren, wird das Cmdlet in der Sitzung als Get-UTCDatebezeichnet und 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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PSSession

Gibt eine benutzerverwaltete 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 tatsächlich in der Remotesitzung ausgeführt, aber die Remotingdetails werden im Hintergrund von PowerShell verwaltet.

Dieser Parameter verwendet das Implizite Remoting-Feature von PowerShell. Dies entspricht der Verwendung des Import-PSSession Cmdlets zum Importieren bestimmter Module aus einer Sitzung.

Import-Module PowerShell Core-Module können nicht aus einer anderen Sitzung importiert werden. Die PowerShell Core-Module haben Namen, die mit Microsoft.PowerShell beginnen.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:PSSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 zum Angeben einer Mindestversion den MinimumVersion-Parameter. Sie können auch die Parameter Module und Version des #Requires Schlüsselwort (keyword) 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 zum Importieren von Modulen verwenden, 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 die Versionsnummern des PowerShell-Moduls in zukünftigen Versionen des Windows-Betriebssystems höher sind als die Modulversionsnummern in vorhandenen Versionen des Windows-Betriebssystems.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

Gibt einen Bereich an, in den dieses Cmdlet das Modul importiert.

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 Import-Module das Cmdlet über die Eingabeaufforderung, die Skriptdatei oder den Skriptblock aufgerufen wird, werden standardmäßig alle Befehle in den globalen Sitzungszustand importiert. Sie können den - Scope-Parameter mit dem Wert Local verwenden, um Modulinhalte in den Skript- oder Skriptblockbereich zu importieren.

Wenn das Cmdlet aus einem anderen Modul aufgerufen wird, Import-Module importiert das Cmdlet die Befehle in einem Modul, einschließlich Befehle aus geschachtelten Modulen, in den Sitzungszustand des Aufrufers. -Global Gibt an-Scope Global, dass dieses Cmdlet Module in den globalen Sitzungszustand importiert, sodass sie für alle Befehle in der Sitzung verfügbar sind.

Der Global-Parameter entspricht dem Scope-Parameter mit dem Wert Global.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:String
Accepted values:Local, Global
Position:Named
Default value:Current scope
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Eingaben

System.String, System.Management.Automation.PSModuleInfo, System.Reflection.Assembly

Sie können einen Modulnamen, ein Modulobjekt oder ein Assemblyobjekt an dieses Cmdlet übergeben.

Ausgaben

None, System.Management.Automation.PSModuleInfo, or System.Management.Automation.PSCustomObject

Dieses Cmdlet gibt psModuleInfo oder PSCustomObject zurück. Standardmäßig Import-Module generiert keine Ausgabe. Wenn Sie den PassThru-Parameter angeben, generiert das Cmdlet ein System.Management.Automation.PSModuleInfo-Objekt , das das Modul darstellt. Wenn Sie den AsCustomObject-Parameter angeben, wird ein PSCustomObject-Objekt generiert.

Hinweise

  • Bevor Sie ein Modul importieren können, muss das Modul auf dem lokalen Computer installiert werden. Das heißt, das Modulverzeichnis muss in ein Verzeichnis kopiert werden, auf das Ihr lokaler Computer zugreifen kann. Weitere Informationen finden Sie unter about_Modules.

    Sie können auch die Parameter PSSession und CIMSessionverwenden, um Module zu importieren, die auf Remotecomputern installiert sind. Befehle, die in diesen Modulen die Cmdlets verwenden, werden jedoch tatsächlich 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 Sie können nicht auf die Originale zugreifen. Funktionen, Cmdlets und Anbieter werden von den neuen Membern lediglich überschatten. Auf sie kann zugegriffen werden, indem der Befehlsname mit dem Namen seines Snap-Ins, Moduls oder Funktionspfads qualifiziert wird.

  • Verwenden Sie das Cmdlet, um die Formatierungsdaten für Befehle zu aktualisieren, die Update-FormatData aus einem Modul importiert wurden. Update-FormatData aktualisiert auch die Formatierungsdaten für Befehle in der Sitzung, die aus Modulen importiert wurden. Wenn sich die Formatierungsdatei für ein Modul ändert, können Sie einen Update-FormatData Befehl ausführen, 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 gepackt. 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 der es sich immer um ein Snap-In handelt. Außerdem handelt es sich bei Remotesitzungen, z. B. bei denen, die New-PSSession vom Cmdlet gestartet werden, um Sitzungen im älteren Stil, die Kern-Snap-Ins enthalten.

    Informationen zur CreateDefault2-Methode , mit der Sitzungen im neueren Stil mit Kernmodulen erstellt werden, finden Sie unter CreateDefault2-Methode.

  • Import-Module PowerShell Core-Module können nicht aus einer anderen Sitzung importiert werden. Die PowerShell Core-Module haben Namen, die mit Microsoft.PowerShell beginnen.

  • In Windows PowerShell 2.0 wurden einige der Eigenschaftswerte des Modulobjekts, z. B. die Eigenschaftswerte ExportiertCmdlets und NestedModules, erst aufgefüllt, wenn das Modul importiert wurde und für das Modulobjekt, das vom PassThru-Parameter zurückgegeben wird, nicht verfügbar waren. In Windows PowerShell 3.0 werden alle Moduleigenschaftenwerte aufgefüllt.

  • Wenn Sie versuchen, ein Modul zu importieren, das Assemblys im gemischten Modus enthält, die nicht mit Windows PowerShell 3.0 kompatibel sind, Import-Module gibt eine Fehlermeldung wie die folgende zurück.

    Import-Module: Assembly im gemischten Modus wird für Version 'v2.0.50727' der Runtime erstellt und kann nicht in die 4.0-Runtime ohne zusätzliche Konfigurationsinformationen geladen werden.

    Dieser Fehler tritt auf, wenn ein Modul, das für Windows PowerShell 2.0 entwickelt wurde, mindestens eine Assembly mit gemischten Modulen enthält, d. h. eine Assembly, die sowohl verwalteten als auch nicht verwalteten Code wie C++ und C# enthält.

    Um ein Modul zu importieren, das Assemblys im gemischten Modus enthält, starten Sie Windows PowerShell 2.0 mit dem folgenden Befehl, und versuchen Sie es Import-Module 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 ausgeführt wird, und auf Windows-Computern, auf denen PowerShell installiert ist, aber kein PowerShell-Remoting aktiviert ist.

    Sie können die CIM-Parameter auch 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.