So installieren Sie PowerShell-Module: Eine Schritt-für-Schritt-Anleitung
Power Shellist eine plattformübergreifende Aufgabenautomatisierungslösung von Microsoft, bestehend aus einer Befehlszeilen-Shell, einer Skriptsprache und einem Konfigurationsmanagement-Framework
APowerShell-Modulenthält eine Reihe verwandter Windows PowerShell-Mitglieder wie Cmdlets, Anbieter, Funktionen, Workflows, Variablen und Aliase. Die Mitglieder eines Pakets (die normalerweise in einem einzigen Verzeichnis gruppiert sind) können in einem PowerShell-Skript, einer kompilierten DLL oder beidem implementiert werden. Das Hauptziel eines Moduls besteht darin, die Modularisierung von Windows PowerShell-Code zu ermöglichen.
Durch die Definition einer Reihe zusammengehöriger Skriptdateien, Assemblys und zugehöriger Ressourcen als Modul können Sie Ihren Code viel einfacher referenzieren, laden, beibehalten und freigeben, als Sie es sonst tun würden. Beispielsweise können Personen, die Befehle schreiben, Module verwenden, um ihre Befehle zu organisieren und sie mit anderen zu teilen, während diejenigen, die Module erhalten, die Befehle in den Modulen zu ihren PowerShell-Sitzungen hinzufügen und sie genau wie die integrierten Befehle verwenden können.
Die mit Windows gelieferte PowerShell enthält einige hundert Cmdlets, die Ihnen bei grundlegenden Aufgaben wie dem Lesen von Dateien, dem Erstellen von Registrierungsschlüsseln, dem Pingen von Computern, dem Herstellen einer Verbindung zu Remote-Systemen usw. helfen können. Dieses vorkonfigurierte PowerShell-Cmdlet kann jedoch nicht alles unterstützen, was Sie mit der Sprache tun möchten. Um Aufgaben außerhalb der integrierten PowerShell-Befehle auszuführen, müssen Sie Module installieren, die Befehle enthalten, die Ihnen diese Funktionalität bieten. In diesem Artikel stellen wir eine Schritt-für-Schritt-Anleitung zur Installation von PowerShell-Modulen bereit.
Komponenten und Typen des PowerShell-Moduls
Ein Modul umfasst vier wesentliche Komponenten, Dazu gehören ein PowerShell-Skript oder eine verwaltete Cmdlet-Assembly, zusätzliche Assemblys oder Skripts, eine Manifestdatei und ein Verzeichnis, das den gesamten Inhalt enthält. Die folgenden Abschnitte beschreiben die Typen an Modulen, die Sie erhalten können, indem Sie die verschiedenen möglichen Teile eines Moduls miteinander kombinieren:
- Skriptmodule: Ein Skriptmodul ist einfach ein Windows PowerShell-Skript mit der Erweiterung .psm1, das es Administratoren ermöglicht, darauf Import-, Export- und Verwaltungsfunktionen zu verwenden. Ein Skriptmodul enthält gültigen Windows PowerShell-Code. Es kann im PowerShell-Modulpfad oder einem beliebigen Pfad, den Sie explizit beschreiben, gespeichert oder installiert werden, damit PowerShell es angemessen erkennen kann.
- Binäre Module: Ein Binärmodul ist eine .NET Framework-Assembly (.dll), die kompilierten Code enthält. Im Vergleich zu einem Skriptmodul können Sie mit einem Binärmodul Cmdlets schneller erstellen oder Funktionen wie Multithreading nutzen, die in Windows PowerShell-Skripts nicht so einfach zu programmieren sind. Darüber hinaus kann ein Binärmodul in einem Ordner entlang des PowerShell-Modulpfads gespeichert oder installiert werden.
- Manifest-Module: Ein Manifestmodul ist ein Modul, das eine Manifestdatei verwendet, um alle Binärmodule seiner Komponenten zu beschreiben, aber über keinerlei Kernassembly oder Skript verfügt.
- Dynamische Module: Ein dynamisches Modul ist ein Modul, das nicht aus einer Datei geladen oder in einer Datei gespeichert wird. Stattdessen werden sie dynamisch von einem Skript erstelltNew-Module-Cmdlet. Dieses Modul ermöglicht es einem Skript, bei Bedarf ein Modul zu erstellen, das nicht geladen oder im persistenten Speicher gespeichert werden muss. Dynamische Module benötigen keine permanenten Ordner zum Speichern ihrer zugehörigen Assemblys.
So installieren Sie ein PowerShell-Modul
Sobald Sie ein Skript-, Binär- oder Manifestmodul erstellt haben, können Sie Ihre Arbeit an einem Ort speichern, z. B. in einem Systemordner, in dem Windows PowerShell installiert ist, oder in einem Benutzerordner, damit andere Zugriff darauf haben. Bevor Sie ein Modul verwenden können, müssen Sie es zunächst installieren. Zweitens müssen Sie das finden PowerShell-Befehle dass das Modul mithilfe des Cmdlets hinzugefügt wurdeGet-Befehlund schließlich müssen Sie die Befehle verwenden, die das Modul hinzugefügt hat.
Es gibt zwei Hauptmethoden zum Installieren des PowerShell-Moduls: die PowerShell-Galerie-Methode und die manuelle Methode (wenn die Module nicht in der PowerShell-Galerie verfügbar sind). Im folgenden Abschnitt wird jede dieser Methoden ausführlich beschrieben.
Methode 1 – Modul aus der PowerShell-Galerie installieren
Der PowerShell-Galerie ist ein Online-Paket-Repository für PowerShell mit Skripten, Modulen und DSC-Ressourcen, die Sie herunterladen und nutzen können. Microsoft und die PowerShell-Community haben diese verfasst. Sie können Pakete in der PowerShell-Galerie finden nach:
- Verwenden des Suchsteuerelements auf der Startseite der PowerShell-Galerie
- Durchsuchen der Module und Skripte auf der Seite „Pakete“.
- Je nach Pakettyp werden die Cmdlets „Find-Module“, „Find-DscResource“ und „Find-Script“ ausgeführt
Sobald Sie ein Paket identifiziert haben, an dem Sie interessiert sind, können Sie mehr darüber erfahren, indem Sie die mit dem Paket hochgeladenen Metadaten auf der spezifischen Seite des Pakets in der Galerie untersuchen. Möglicherweise möchten Sie das Paket auch zur weiteren Überprüfung aus der Galerie herunterladen. Führen Sie dazu entweder das ausSave-ModuloderSave-ScriptCmdlet, abhängig vom Pakettyp. Dadurch können Sie das Paket zur Überprüfung des Inhalts lokal speichern, ohne es installieren zu müssen.
Die Installation von PowerShell-Modulen aus der PowerShell-Galerie ist die einfachste Möglichkeit, Module zu installieren. Um ein Paket oder Modul aus der Galerie zu installieren, verwenden wir den Befehl:Install-ModuloderInstall-Script-Cmdlet, abhängig vom Pakettyp.
- DerInstall-ModulDer Befehl installiert das Modul auf$env: ProgramFilesWindowsPowerShellModulesstandardmäßig. Hierzu ist ein Administratorkonto erforderlich. Wenn Sie das hinzufügen-Scope CurrentUserParameter, auf dem das Modul installiert wird$env: USERPROFILEDocumentsWindowsPowerShellModules.
- Der Befehl „Install-Script“ installiert das Skript in$env: ProgramFilesWindowsPowerShellScriptsstandardmäßig. Hierzu ist auch ein Administratorkonto erforderlich. Wenn Sie das hinzufügen-Scope CurrentUserParameter, auf dem das Skript installiert wird$env: USERPROFILEDocumentsWindowsPowerShellScripts.
- DerInstall-ModulUndInstall-SkriptMit dem Befehl wird standardmäßig die aktuellste Version eines Pakets installiert. Wenn Sie eine ältere Version des Pakets benötigen, fügen Sie den Parameter hinzu-ErforderlicheVersion.
Darüber hinaus müssen Sie vor der Installation eines Moduls den Namen des Moduls und den Befehl zur Installation kennen. Auf der Galerieseite erfahren Sie, wie der Befehl zum Installieren des Moduls lautet. In diesem Beispiel installieren wir ein Modul, das wir in der Galerie mit dem Namen gefunden habenNetworkingDsc. Führen Sie dazu den folgenden Befehl aus:
Install-Module -Name NetworkingDsc -RequiredVersion 8.2.0
Abhängig vom NuGet-Anbieter, den Sie ausführen, erhalten Sie möglicherweise die Benachrichtigung, dass der NuGet-Anbieter zum Fortfahren erforderlich ist.PowerShellGetist auf den Anbieter namens Nuget angewiesen. Möglicherweise müssen Sie die neueste Version installieren, bevor Sie fortfahren. Geben Sie Y ein und drücken Sie die Eingabetaste, wenn die Meldung „Wollen Sie?“ angezeigt wirdPowerShellGetSoll der NuGet-Anbieter jetzt installiert und importiert werden?“ Auch hier erhalten Sie je nach Ihren Einstellungen möglicherweise eine weitere Benachrichtigung: „Sind Sie sicher, dass Sie die Module von ‚PSGallery‘ installieren möchten?“. Geben Sie Y ein und drücken Sie die Eingabetaste, um fortzufahren. Dadurch wird mit der Installation begonnenNetworkingDscModul, das Sie visuell am Ladetext oben im PowerShell-Fenster erkennen können. Nachdem die Installation abgeschlossen ist, können Sie sie überprüfen, indem Sie den folgenden Befehl ausführen:Get-Module -ListAvailable.


Wenn Sie das installierte Paket aus der PowerShell-Galerie in Azure Automation bereitstellen möchten, klicken Sie auf Azure Automation und dann auf der Seite mit den Paketdetails auf In Azure Automation bereitstellen. Wenn Sie darauf klicken, werden Sie zum Azure-Verwaltungsportal weitergeleitet, wo Sie sich mit Ihren Azure-Kontoanmeldeinformationen anmelden. Wenn das Paket Abhängigkeiten enthält, werden alle Abhängigkeiten auch in Azure Automation bereitgestellt.
Methode 2 – PowerShell-Module manuell installieren
Wenn das Modul nicht in der PowerShell-Galerie verfügbar ist, müssen Sie es manuell installieren. Um PowerShell-Module manuell zu installieren, müssen Sie zunächst Ihren aktuellen PowerShell-Modulverzeichnispfad ermitteln, Ihr neues Modul in diesen Pfad herunterladen und den Befehl import-module aufrufen, um Windows darüber zu informieren, dass es dort ist. Führen Sie dann die folgenden Schritte aus, um PowerShell-Module manuell zu installieren:
1. Bestimmen Sie den Installationspfad: Sie müssen den Installationspfad für Ihre PowerShell-Module bestimmen, damit Sie wissen, wo Sie neue ablegen müssen. Dadurch wird sichergestellt, dass das neue Modul in einem im aufgeführten Pfad installiert wirdPSModulePathUmgebungsvariable. Sie können bestimmen, wo Ihr Modul installiert werden soll, indem Sie einen der im gespeicherten Pfade verwenden$ENV: PSModulePathVariable. Öffnen Sie dazu ein PowerShell-Fenster und führen Sie den Befehl aus:$Env: PSModulePath.
Die Ausgabe zeigt den folgenden Pfad an, wie in Abbildung 3.0 unten dargestellt:
- C:BenutzerAdministratorDokumenteWindowsPowerShellModules
- C:ProgrammeWindowsPowerShellModules
- C:WINDOWSsystem32WindowsPowerShellv1.0Modules

Verwenden Sie den ersten Pfad, wenn das Modul für ein bestimmtes Benutzerkonto auf dem Computer verfügbar sein soll. Verwenden Sie den zweiten Pfad, wenn Sie das Modul allen Benutzern auf dem Computer zur Verfügung stellen möchten. Der dritte Pfad ist der Pfad, den Windows für integrierte Module verwendet, die bereits mit dem Windows-Betriebssystem installiert sind. Microsoft empfiehlt, die Verwendung dieses Speicherorts zu vermeiden. Es bleibt also der erste oder zweite Weg.
Wenn Sie einen dieser Pfade verwenden, kann PowerShell Ihr Modul automatisch finden und laden, wenn ein Benutzer es in seinem Code aufruft. Möglicherweise möchten Sie jedoch auch Ihre Pfade hinzufügen, aber bei den ersten beiden Pfaden bleiben, sofern dies nicht erforderlich ist. Wenn Sie Ihr Modul an einem anderen Ort speichern, können Sie PowerShell dies explizit mitteilen, indem Sie beim Aufruf den Speicherort Ihres Moduls als Parameter übergebenInstall-Modul.Wenn in Ihrer Umgebungsvariablen andere Pfade aufgeführt sind, stammen diese möglicherweise von Ihren installierten Anwendungen. Einige Anwendungen installieren PowerShell-Befehle und fügen diese automatisch zur Variablen hinzu. Nachdem wir nun wissen, wo neue Module platziert werden sollen, fahren wir mit dem nächsten Schritt fort.
2. Kopieren Sie das neue Modul in den Pfad: Laden Sie nun das PowerShell-Modul von Ihrer bevorzugten Site herunter und kopieren Sie es in einen der beiden in Schritt 1 oben identifizierten Pfade. In diesem Beispiel stellen wir es allen Benutzern auf dem Computer zur Verfügung, um es in das Verzeichnis C:ProgrammeWindowsPowerShellModules zu kopieren. Nach Abschluss können Sie überprüfen, ob das neue Modul als für PowerShell verfügbar aufgeführt ist, indem Sie den folgenden Befehl ausführen:Get-Module -ListAvailable.
3. Neues Modul importieren: Wenn das neue Modul installiert ist, müssen wir Windows nur noch anweisen, es zu laden, um es in unserer aktuellen PowerShell-Sitzung zu verwenden. Verwenden Sie dazu die folgende Befehlssyntax:Import-Modul-Name Modulname
Angenommen, Sie möchten den Befehl importierenNTFSSecurity(PowerShell-Modul zum Verwalten der Datei- und Ordnersicherheit auf NTFS-Volumes) führen Sie den folgenden Befehl aus:Importmodul NTFSSecurity. Wenn Sie eine Benachrichtigung erhalten, um zu bestätigen, ob Sie dem Skript oder Modul vertrauen und es ausführen möchten, geben Sie R ein, um es einmal auszuführen (vorausgesetzt, Sie sind sicher, dass Sie es ausführen möchten). Damit ist es erledigt und das neue Modul ist nun einsatzbereit.
Obwohl Microsoft die Installation von PowerShell-Modulen von Websites Dritter zulässt, gibt es auch Auswirkungen auf die Sicherheit. Böswillige Akteure können diese Lücke ausnutzen, um Skripte mit Schadcodes zu entwickeln und bereitzustellen. Stellen Sie daher sicher, dass Sie nur vertrauenswürdige Module oder solche aus einer zuverlässigen Quelle laden.
Häufig gestellte Fragen zur PowerShell-Installation
Wie erhalte ich PowerShell-Module?
Das PowerShell-System ist bereits im Windows-Betriebssystem verfügbar und wahrscheinlich stehen Ihnen bereits viele Module zur Verfügung. Geben Sie an der PowerShell-Eingabeaufforderung Get-Module -ListAvailable ein, um zu sehen, welche Module aktiv sind. Um ein Modul zu installieren, verwenden Sie dieGet-InstalledModuleCmdlet.
Wo sind PowerShell-Module installiert?
In Windows gibt es eine Umgebungsvariable, die den Speicherort für PowerShell-Module innerhalb der Verzeichnisstruktur der Festplatte enthält. Für alle Benutzer ist dies der Fall$env:PROGRAMFILESPowerShellModules. Unter Linux und macOS werden Module in /usr/local/share/powershell/Modules gespeichert.
Wie installiere ich das Windows Update PowerShell-Modul?
Sie sollten die PowerShell-Eingabeaufforderung als Administrator öffnen, um das PSWindowsUpdate-Modul zu installieren.
- EingebenSet-ExecutionPolicy -ExecutionPolicy RemoteSignedum die Remote-Skriptausführung zu ermöglichen.
- EingebenInstall-Module -Name PSWindowUpdate -Forceum das PSWindowUpdate-Modul herunterzuladen und zu installieren.
- EingebenImport-Module -Name PSWindowUpdateum PSWindowsUpdate in die aktuelle PowerShell-Sitzung zu bringen.
- EingebenGet-Command -Module PSWindowsUpdateum zu überprüfen, ob die Installation funktioniert hat und um zu sehen, welche Befehle im Modul verfügbar sind.