Module installieren mit dem Powershell Package Manager
Seit Powershell 5 können Sie Module auch über den Powershell Package Manager installieren. Der Powershell Package-Manager erlaubt Ihnen Herunterladen und Installieren von Modulen aus zentralen Speichern, den sogenannten Repositories. Wenn Sie kein spezielles Repository angeben, verwendet der Package-Manager die Powershell-Gallery von Microsoft, die aktuell über 5000 Module und Erweiterungen bereitstellt und von jedem verwendet werden kann.
Vor der ersten Verwendung des Package-Managers muss NuGet installiert werden. NuGet ist ebenfalls ein Paket-Manager, der ursprünglich für Visual Studio entwickelt wurde, und die Basis für den Powershell Package-Manager darstellt. Entweder lassen Sie Powershell die Installation automatisch beim ersten Aufrufen eines der Packetmanager-Cmdlets ausführen, oder Sie können NuGet vorab installieren:
Install-PackageProvider -Name NuGet -Force
Um Module in einem Repository zu suchen, nutzen Sie Find-Module. Find-Module kann nach Namen suchen, aber auch nach Tags, die beim Bereitstellen des Moduls mit angegeben werden können.
Find-Module -Name * # alle Module des Repository anzeigen lassen
Find-Module -Name ntfs # Alle Module mit ntfs im Namen anzeigen
Find-Module -Tag DSCResourceKit # mit DSCResourcekit getaggte Module anzeigen
Find-Module -Tag DSCResourceKit | Save-Module -Path c:\temp\dsc
Um ein Modul zu installieren, verwendet man Install-Module. Install-Module benötigt mindestens den Namen des zu installierenden Moduls. Optional kann man auch eine minimale Versionsnummer angeben, die heruntergeladen werden soll. Gibt man keine Versionsnummer an, installiert der Package-Manager immer die neueste Version.
Install-Module -Name NTFSSecurity -RequiredVersion 4.2.3
Die Installation findet standardmässig in %programFiles%\WindowsPowershell\Modules statt, also den Modulordner für alle Benutzer des Rechners. Der Package-Manager kann das Modul aber auch für den angemeldeten Benutzer installieren – es landet dann im Modulordner des Benutzers unter %userprofile%\Documents\WindowsPowershell\Modules. Verwenden Sie hierfür den Parameter Scope von Install-Module:
Install-Module -Name NTFSSecurity -Scope CurrentUser
Um sich alle installierten Module anzeigen zu lassen, verwenden Sie Get-InstalledModule, um installierte Module zu aktualisieren Update-Module. Achten Sie aber darauf, dass Sie nur Module aktualisieren können, die Sie über Install-Module bereitgestellt haben!
Get-InstalledModule Update-Module -Name *
Der Powershell-Paketmanager ist selbst ein Powershell-Modul. Manche Module benötigen für die Installation eine neuere Version des Paketmanagers. Bevor er über Update-Module auf dem neuesten Stand gebracht werden kann, muss er aber erst einmal über den Package-Manager installiert werden. Der Name des Moduls lautet PowershellGet.
Install-Module -Name PowershellGet
Da die Modul-Installation tatsächlich nur aus dem Download mit anschließendem Entpacken besteht, kann ein installiertes Modul schadlos durch Löschen des Ordners entfernt werden. Alternativ können Sie aber auch das Cmdlet Remove-Module verwenden.
Remove-Module -Name NTFSSecurity
Mehr zum Thema Powershell Gallery finden Sie im Artikel Getting Started with the PowerShell Gallery.
Remove-Module -Name NTFSSecurity