Aufgaben einfach automatisieren

PowerShell 5.0 - die Neuerungen

Mit Windows 10 kommt die neue PowerShell 5.0 auf den Markt. Interessierte Anwender können den Nachfolger der PowerShell 4.0 auch unter Windows 8.1 oder Windows Server 2012 R2 ausprobieren. Wir fassen die wichtigsten Neuerungen zusammen.

Die PowerShell 5.0 bietet im Vergleich zum direkten Vorgänger einige sehr interessante Neuerungen. Vor allem im Zusammenhang mit Windows 10 und der nächsten Windows-Server-Generation bietet die neue PowerShell enormen Praxisnutzen. Sicherlich die wichtigste Neuerung ist die Möglichkeit, Anwendungen als Paket über die PowerShell zu verteilen.

In Windows 10 ist die PowerShell 5.0 als Preview bereits integriert. Sie können aber auch in Windows Server 2012 R2 und Windows 8.1 die Preview der PowerShell installieren. Dazu laden Sie das Windows Management Framework 5.0 Preview auf den Rechner und installieren es.

OneGet Framework - Software im Netzwerk verteilen

Die PowerShell 5.0 ist mit dem OneGet-Framework ausgestattet. Dabei handelt es sich, einfach ausgedrückt, um eine Sammlung von CMDlets, die beim Verteilen und Installieren von Anwendungen im Netzwerk hilft. Die Anwendungen werden als Pakete installiert. Erfreulich dabei ist, dass Anwender mit der PowerShell 5.0 auf die Pakete von NuGet und Chocolatey Repositories zugreifen können. Damit lassen sich bereits mehrere Tausend Anwendungen installieren. Das entsprechende PowerShell-Modul für OneGet laden Sie mit:

Import-Module -Name OneGet

Die Befehle in diesem Modul lassen Sie sich mit Get-Command -Module OneGet anzeigen. Generell ist die Verwendung der PowerShell ISE aber besser für OneGet geeignet. Sie können jedoch auch problemlos über Skripte in der normalen PowerShell die Paketfunktion nutzen. Bevor Sie Pakete installieren, überprüfen Sie, ob die Ausführungsrichtlinie für Skripte auf RemoteSigned gesetzt ist. Dazu verwenden Sie den Befehl: Set-ExecutionPolicy RemoteSigned. In den Preview-Versionen der PowerShell sind noch nicht alle Quellen verfügbar. Welche derzeit angebunden sind, sehen Sie mit Get-PackageSource.

Die zur Verfügung stehenden Pakete lassen Sie sich mit Find-Package | Out-Gridview anzeigen. Teilweise erhalten Sie die Meldung, dass Sie die NuGet-Erweiterung in der PowerShell installieren müssen. Diese Meldung bestätigen Sie.

Danach werden die Pakete in einem eigenen Fenster angezeigt. Hier können Sie auch Filter setzen und die Anzeige auf diesem Weg ein wenig einschränken.

Wollen Sie ein Paket installieren, verwenden Sie:

Find-Package | Out-GridView -Title "<Paket das installiert werden soll>" -PassThru | Install-Package -Force

Die Pakete werden standardmäßig ohne Benutzereingaben installiert. Die dazu notwendigen Optionen wurden direkt in das Paket integriert. Sie können dieses Verhalten also nicht über die PowerShell steuern, sondern müssen über die Installationsdateien des Paketes gehen.

Sie können mit OneGet also auch Basis-Images von Windows-Arbeitsstationen erstellen. Dazu installieren Sie das Betriebssystem und danach Basisanwendungen, die über die Pakete zur Verfügung stehen. Wollen Sie bestimmte Pakete suchen, verwenden Sie:

Find-Package -Name *<Name>*

Arbeiten Sie immer mit den beiden Platzhaltern *, da Sie nur so alle relevanten Pakete angezeigt bekommen. Kennen Sie den genauen Namen des Paketes, können Sie die Platzhalter natürlich weglassen. Neben der Möglichkeit, nach Anwendungen in den Paketen zu suchen, können Sie sich auch auf die Suche nach den Versionen machen. Dazu verwenden Sie die Option -MinimumVersion <Version> des CMDlets Find-Package. Wollen Sie neuere Versionen filtern, verwenden Sie -MaximumVersion.