THEMA about_Modules KURZBESCHREIBUNG Erläutert die Installation, den Import und die Verwendung von Windows PowerShell-Modulen. DETAILBESCHREIBUNG Ein Modul stellt ein Paket mit Windows PowerShell-Befehlen dar, z. B. Cmdlets, Anbieter, Funktionen, Variablen und Aliasen. Beim Erstellen von Befehlen können Sie Module zum Organisieren von und Freigeben von Befehlen verwenden. Personen, die Module empfangen, können die Befehle Modulen in eigenen Windows PowerShell-Sitzungen hinzufügen und wie die integrierten Befehle verwenden. In diesem Thema wird erklärt, wie Windows PowerShell-Module verwendet werden. Informationen zum Erstellen von Windows PowerShell-Modulen finden Sie unter "Writing a Windows PowerShell Module" in der MSDN (Microsoft Developer Network) Library unter https://go.microsoft.com/fwlink/?LinkId=144916. SO VERWENDEN SIE EIN MODUL Zum Verwenden eines Moduls führen Sie die folgenden Aufgaben aus: 1. Installieren Sie das Modul. (Dieser Vorgang wird häufig automatisch ausgeführt.) 2. Importieren Sie das Modul in Ihre Windows PowerShell-Sitzung. 3. Suchen Sie die vom Modul hinzugefügten Befehle. 4. Verwenden Sie die vom Modul hinzugefügten Befehle. In diesem Thema wird erläutert, wie diese Aufgaben ausgeführt werden. Zudem finden Sie weitere nützliche Informationen zum Verwalten von Modulen. SO INSTALLIEREN SIE EIN MODUL Wenn Sie ein Modul als Ordner mit darin enthaltenen Dateien empfangen, müssen Sie es auf dem Computer installieren, bevor Sie es nach Windows PowerShell importieren können. Die meisten Module sind bereits installiert. Windows PowerShell wird mit mehreren vorinstallierten Modulen ausgeliefert. Unter Windows Server 2008 R2 werden mit dem Assistenten zum Hinzufügen von Features in Server-Manager die von Ihnen ausgewählten Featuremodule automatisch installiert. Zahlreiche weitere Module werden als Installations- oder Setupprogramm bereitgestellt, mit dem das betreffende Modul installiert wird. So installieren Sie einen Modulordner. 1. Erstellen Sie das Verzeichnis "Module" für den aktuellen Benutzer, wenn dieses noch nicht vorhanden ist. Geben Sie Folgendes ein, um das Verzeichnis "Module" zu erstellen: new-item -type directory -path $home\Documents\WindowsPowerShell\Module 2. Kopieren Sie den gesamten Modulordner in das Verzeichnis "Module". Den Ordner können Sie auf beliebige Weise kopieren, u. a. mit Windows-Explorer, "Cmd.exe" oder Windows PowerShell. In Windows PowerShell verwenden Sie das Cmdlet "Copy-Item." Um beispielsweise den Ordner "MeinModul" von "C:\ps-test\MeinModul" in das Verzeichnis "Module" zu kopieren, geben Sie Folgendes ein: copy-item -path c:\ps-test\MeinModul -dest $home\Documents\WindowsPowerShell\Module Ein Modul können Sie an jedem Speicherort installieren, doch erleichtern Sie die Verwaltung, wenn Sie die Module an einem Standardspeicherort für Module installieren. Weitere Informationen zu den Standardspeicherorten für Module finden Sie im Abschnitt "Modulspeicherorte und PSModulePath". SO SUCHEN SIE INSTALLIERTE MODULE Wenn ein Modul installiert wurde, können Sie es in die Windows PowerShell-Sitzung importieren. Zum Suchen an einem Standardmodulspeicherort installierter Module geben Sie an der Windows PowerShell-Eingabeaufforderung Folgendes ein: get-module -listAvailable Zum Suchen in die Sitzung bereits importierter Module geben Sie an der Windows PowerShell-Eingabeaufforderung Folgendes ein: get-module Weitere Informationen zum Cmdlet "Get-Module" finden Sie unter "Get-Module". SO IMPORTIEREN SIE EIN MODUL Wenn Sie die Befehle in einem Modul verwenden möchten, importieren Sie das Modul in eine Windows PowerShell-Sitzung. Um Module von einem Standardmodulspeicherort in die aktuelle Sitzung zu importieren, verwenden Sie das folgende Befehlsformat. import-module <Modulname> Mit dem folgenden Befehl importieren Sie beispielsweise das Modul "BitsTransfer" in die aktuelle Sitzung. import-module BitsTransfer Zum Importieren eines Moduls, das sich nicht an einem Standardmodulspeicherort befindet, verwenden Sie im Befehl den vollqualifizierten Pfad zum Modulordner. Wenn Sie beispielsweise das Modul "TestCmdlets" der Sitzung im Verzeichnis "C:\ps-Test" hinzufügen möchten, geben Sie Folgendes ein: import-module c:\ps-test\TestCmdlets Weitere Informationen zum Hinzufügen von Modulen zu einer Sitzung finden Sie unter Import-Module. SO IMPORTIEREN SIE ALLE MODULE IN DIE WINDOWS POWERSHELL-SITZUNG Unter Windows 7 und Windows Server 2008 R2 öffnen Sie mit der Aufgabe "Alle Module importieren" eine Windows PowerShell-Sitzung, die alle verfügbaren Windows PowerShell-Module und -Snap-Ins enthält. Zum Starten einer Windows PowerShell-Sitzung mit allen verfügbaren Windows PowerShell-Modulen und -Snap-Ins verwenden Sie die folgende Prozedur. -- Klicken Sie mit der rechten Maustaste auf der Taskleiste auf das Windows PowerShell-Symbol, und klicken Sie dann auf "Alle Module importieren". Hinweis: In Windows Server 2008 R2 ist das Windows PowerShell-Symbol standardmäßig auf der Taskleiste fixiert. Sie müssen jedoch Windows PowerShell einmal starten, um die Aufgabe "Alle Module importieren" anzuzeigen. In den anderen Versionen von Windows geben Sie an der Windows PowerShell-Eingabeaufforderung Folgendes ein, um alle verfügbaren Module in die Sitzung zu importieren: get-module -listAvailable | import-module SO SUCHEN SIE DIE BEFEHLE IN EINEM MODUL Wenn Sie ein Modul in die Windows PowerShell-Sitzung importiert haben, können Sie die Befehle im Modul verwenden. Zum Suchen von einem Modul hinzugefügter Befehle geben Sie an der Windows PowerShell-Eingabeaufforderung Folgendes ein: get-command -module <Modulname> Um zum Beispiel die Befehle zu suchen, der vom Modul "BitsTransfer" hinzugefügt wurde, geben Sie Folgendes ein: get-command -module BitsTransfer Weitere Informationen zum Cmdlet "Get-Command" finden Sie unter "Get-Command". SO SUCHEN SIE HILFE ZU DEN BEFEHLEN IN EINEM MODUL Wenn das Modul Hilfethemen zu den Befehlen enthält, die von diesem exportiert werden, werden die Hilfethemen über das Cmdlet "Get-Help" angezeigt. Verwenden Sie das Befehlsformat, das Sie auch für jedes andere Hilfethema in Windows PowerShell verwenden. Zum Suchen des Hilfethemas für die Befehle in einem Modul geben Sie an der Windows PowerShell-Eingabeaufforderung Folgendes ein: get-help <Befehlsname> Ausführlichere Hilfeinformationen erhalten Sie mit folgendem Befehl: get-help <Befehlsname> -detailed Ausführliche Hilfeinformationen zum Cmdlet "Start-BitsTransfer" können z. B. mit folgendem Befehl abgerufen werden: get-help Start-BitsTransfer -detailed Weitere Informationen zum Modul "Get-Help" finden Sie mit dem Befehl "Get-Help". SO ENTFERNEN SIE EIN MODUL Wenn Sie ein Modul entfernen, werden die vom Modul hinzugefügten Befehle aus der Sitzung gelöscht. Zum Entfernen eines Moduls aus einer Sitzung verwenden Sie das folgende Befehlsformat. remove-module <Modulname> Mit dem folgenden Befehl entfernen Sie beispielsweise das Modul "BitsTransfer" aus der aktuellen Sitzung. remove-module BitsTransfer Wenn Sie ein Modul entfernen, wird der Vorgang des Modulimports umgekehrt. Beim Entfernen eines Moduls wird dieses nicht deinstalliert. Weitere Informationen zum Cmdlet "Remove-Module" finden Sie unter "Remove-Module". SO IMPORTIEREN SIE EIN MODUL IN JEDE SITZUNG Mit dem Befehl "Import-Module" werden Module in die aktuelle Windows PowerShell-Sitzung importiert. Dieser Befehl wirkt sich auf nur die aktuelle Sitzung aus. Wenn Sie ein Modul in jede Windows PowerShell-Sitzung importieren möchten, die Sie starten, fügen Sie den Befehl "Import-Module" Ihrem Windows PowerShell-Profil hinzu. Weitere Informationen zu Profilen finden Sie unter "about_Profiles". MODULSPEICHERORTE UND PSMODULEPATH Für Windows PowerShell-Module sind zwei Standardspeicherorte verfügbar, einer für das System und einer für den aktuellen Benutzer. System: $pshome\Modules (%windir%\System32\WindowsPowerShell\v1.0\Modules) Aktueller Benutzer: $home\Documents\WindowsPowerShell\Modules (%UserProfile%\Documents\WindowsPowerShell\Modules) - oder - $home\Eigene Dateien\WindowsPowerShell\Modules (%UserProfile%\Eigene Dateien\WindowsPowerShell\Modules) Hinweis: Wenn Sie unter Windows Vista, Windows Server 2008 und höheren Versionen von Windows Dateien im Verzeichnis "%Windir%\System32" hinzufügen oder ändern möchten, starten Sie Windows PowerShell mit der Option "Als Administrator ausführen". Sie können die Standardmodulspeicherorte des Systems ändern, indem Sie den Wert der Umgebungsvariablen "PSModulePath" ($env:psmodulepath) ändern. Die Umgebungsvariable "PSModulePath" beruht auf der Umgebungsvariablen "Path" und weist das gleiche Format auf. Um die Standardmodulspeicherorte anzuzeigen, geben Sie Folgendes ein: $env:psmodulepath Um einen Standardmodulspeicherort hinzuzufügen, verwenden Sie das folgende Befehlsformat: $env:psmodulepath = $env:psmodulepath + ";<Pfad>" Mit dem Semikolon (;) im Befehl wird der neue Pfad von dem Pfad getrennt, der diesem in der Liste vorausgeht. Wenn Sie beispielsweise das Verzeichnis "C:\ps-test\Module" hinzufügen möchten, geben Sie Folgendes ein: $env:psmodulepath + ";c:\ps-test\Module" Wenn Sie PSModulePath einen Pfad hinzufügen, enthalten die Befehle "Get-Module" und "Import-Module" Module unter diesem Pfad. Der festgelegte Wert wirkt sich auf nur die aktuelle Sitzung aus. Wenn Sie die Änderung permanent vornehmen möchten, fügen Sie den Befehl Ihrem Windows PowerShell-Profil hinzu, oder ändern Sie den Wert der Umgebungsvariablen "PSModulePath" in der Registrierung über die Option "System" der Systemsteuerung. Weitere Informationen zur Variablen "PSModulePath" finden Sie unter "about_Environment_Variables". MODULE UND NAMENSKONFLIKTE Namenskonflikte treten auf, wenn mehrere Befehle in der Sitzung gleiche Namen haben. Der Import eines Moduls führt zu einem Namenskonflikt, wenn Befehle im Modul den gleichen Namen wie Befehle oder Elemente in der Sitzung haben. Namenskonflikte können dazu führen, dass Befehle ausgeblendet oder ersetzt werden. -- Ausgeblendet. Ein Befehl wird ausgeblendet, wenn es sich nicht um den Befehl handelt, der ausgeführt wird, wenn Sie den Befehlsnamen eingeben. Sie können ihn jedoch mit einer anderen Methode ausführen, z. B. durch Qualifizieren des Befehlsnamens mit dem Namen des Moduls oder Snap-Ins, aus dem er stammt. -- Ersetzt. Ein Befehl wird ersetzt, wenn Sie ihn nicht ausführen können, weil er von einem Befehl mit dem gleichen Namen überschrieben wurde. Selbst wenn Sie das Modul entfernen, das den Konflikt verursacht hat, können ersetzte Befehle nicht ausführen. Sie müssen in diesem Fall die Sitzung erneut starten. Mit Import-Module fügen Sie möglicherweise Befehle hinzu, mit denen Befehle in der aktuellen Sitzung ausgeblendet oder ersetzt werden. Zudem können durch Befehle in der Sitzung Befehle ausgeblendet werden, die vom Modul hinzugefügt wurden. Zum Verhindern von Namenskonflikte erstellen Sie mit dem Prefix-Parameter von Import-Command eindeutige Namen für die importierten Befehle. Sie können auch mit den Parametern Alias, Cmdlet, Function und Variable von Import-Module nur die Befehle auswählen, die Sie importieren möchten, und so Befehle ausschließen, die in der Sitzung Namenskonflikte verursachen würden. Auch wenn ein Befehl ausgeblendet ist, können Sie diesen ausführen, indem Sie den Befehlsnamen mit dem Namen des Moduls oder des Snap-Ins qualifizieren, aus dem er stammt. Durch die Rangfolgenregeln für Windows PowerShell-Befehle wird der Befehl bestimmt, der ausgeführt wird, wenn die Sitzung Befehle mit identischen Namen enthält. Wenn eine Sitzung z. B. eine Funktion und ein Cmdlet mit identischen Namen enthält, wird von Windows PowerShell standardmäßig die Funktion ausgeführt. Wenn die Sitzung Befehle des gleichen Typs mit dem gleichen Namen enthält, z. B. zwei Cmdlets mit identischen Namen, wird standardmäßig das Cmdlet ausgeführt, das zuletzt hinzugefügt wurde. Weitere Informationen, einschließlich einer Erläuterung der Rangfolgenregeln und Anweisungen zum Ausführen ausgeblendeter Befehle, finden Sie unter "about_Command_Precedence". MODUL UND-SNAP-INS Sie können der Sitzung Befehle aus Modulen und Snap-Ins hinzufügen. Von Modulen können alle Typen von Befehlen, u. a. Cmdlets, Anbieter und Funktionen, sowie Elemente hinzugefügt werden, z. B. Variablen, Aliase und Windows PowerShell-Laufwerke. Von Snap-Ins können nur Cmdlets und Anbieter hinzugefügt werden. Zwar können Sie der Sitzung Funktionen, Aliase, Variablen und Laufwerke hinzufügen, indem Sie diese eingeben oder ein Skript ausführen, mit dem diese hinzugefügt werden, doch stammen sämtliche Cmdlets und Anbieter in der Sitzung aus einem Modul oder einem Snap-In. Vor dem Entfernen eines Moduls oder Snap-Ins aus der Sitzung bestimmen Sie mit den folgenden Befehlen, welche Befehle entfernt werden. Zum Ermitteln der Quelle eines Cmdlets in der Sitzung verwenden Sie das folgende Befehlsformat: get-command <Cmdlet-Name> | format-list -property verb, noun, pssnapin, module Geben Sie beispielsweise zum Bestimmen der Quelle des Cmdlets "Get-Date" folgenden Befehl ein: get-command get-date | format-list -property verb, noun, pssnapin, module Weitere Informationen zu Windows PowerShell-Snap-Ins finden Sie unter "about_PSSnapins". SIEHE AUCH about_Command_Precedence about_PSSnapins Get-Command Get-Help Get-Module Import-Module Remove-Module