Aufgaben automatisieren in Windows

PowerShell 5.0 - Das ist neu

Thomas Joos ist freiberuflicher IT-Consultant und seit 20 Jahren in der IT tätig. Er schreibt praxisnahe Fachbücher und veröffentlicht in zahlreichen IT-Publikationen wie TecChannel.de und PC Welt. Das Blog von Thomas Joos finden Sie unter thomasjoos.wordpress.com.
Mit Windows 10 kommt die neue PowerShell 5.0. 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 jetzt auch 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.

Windows Powershell 5.0 - Wir sagen Ihnen welche Neuerungen Sie erwarten.
Windows Powershell 5.0 - Wir sagen Ihnen welche Neuerungen Sie erwarten.
Foto: MovGP0 / Wikipedia.de

OneGet Framework - Software im Netzwerk verteilen

Die PowerShell 5.0 kommt mit dem OneGet-Framework. 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 Befehl 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 aber 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 etwas 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 über die Installationsdateien des Paketes.

Sie können mit OneGet also auch Basis-Images von Windows-Arbeitsstationen erstellen. Dazu installieren Sie das Betriebssystem und danach Basis-Anwendungen, 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, haben Sie auch die Möglichkeiten nach den Versionen zu suchen. Dazu verwenden Sie die Option -MinimumVersion <Version> des CMDlets Find-Package. Wollen Sie neuere Versionen filtern, verwenden Sie -MaximumVersion.