Aufgaben automatisieren in Windows

PowerShell 5.0 - Das ist neu

13.10.2015 von Thomas Joos
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.

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.

Weitere Neuerungen in der PowerShell 5.0 - Netzwerkkomponenten verwalten

Weitere Neuerungen in der PowerShell betreffen die mit der PowerShell 4.0 eingeführte Technologie Desired State Configuration (DSC). Hauptsächlich gibt es neue Optionen um festzulegen auf wie vielen Computern gleichzeitig die Änderungen implementiert werden sollen. Mit dem Modul PowerShellGet können Sie DSC-Ressourcen in der PowerShell Resource Gallery nutzen, installieren oder hochladen.

Entwickler können in der PowerShell auch Zip-Archive entpacken und erstellen. Dabei helfen die beiden neuen CMDlets Compress-Archive und Expand-Archive. Mehr zu diesem Thema lesen Sie in einem eigenen Blogbeitrag bei Learn PowerShell.

Ebenfalls neu ist Data Center Abstraction (DAL). Mit dieser Technologie können Sie direkt auf bestimmte Netzwerkkomponenten wie Switches und Router zugreifen. Dazu muss die Hardware diese Technik aber auch unterstützen. In diesem Bereich spielen vor allem Cisco und Huawei eine wichtige Rolle. Microsoft geht in einem eigenen Blogeintrag auf diese Möglichkeiten ein. Um die neuen CMDlets nutzen zu können, verwenden Sie das Modul NetworkSwitch.

Programmentwickler wird freuen, dass mit der PowerShell auch Klassendefinitionen möglich sind. Hier können Sie mit dem neuen Schlüsselwort "class", wie in Objektorientierten Sprachen, eigene Klassen zu definieren. Beispiel:

# Definition einer Klasseclass Computer

Die Klasse Computer können Sie dann im weiteren PowerShell-Skript verwenden. Wie schnell erkennbar wird, bietet die PowerShell mit jeder neuen Version wirklich interessante Funktionen, die Administratoren, aber auch Entwicklern das Leben leichter machen. Da die neue Version auch für Windows 8.1 und Windows Server 2012 R2 verfügbar ist, sollten sich Administratoren jetzt schon mit den Möglichkeiten auseinandersetzen. Allerdings sind derzeit bei weitem noch nicht alle Funktionen in der Paketverwaltung und der Verwaltung von Switches integriert.

In diesem Video sehen Sie, welche neuen Kommandos und Möglichkeiten Powershell 5.0 bietet.

Zum Video: PowerShell 5.0 - Das ist neu

PowerShell - Versionen- und Upgrade-Übersicht

Betriebssystem

Enthaltene PowerShell-Version

Nachrüstbar auf und mit

Anmerkungen

Windows Server 2003

keine

PowerShell 2.0 mit Update for Windows Server 2003 (KB968930)

benötigt Server SP2

Windows Server 2008

keine

PowerShell 3.0 mit Windows Management Framework 3.0

benötigt Server SP2

Windows Server 2008 R2

PowerShell 2.0

PowerShell 4.0 mit Windows Management Framework 4.0

siehe Warnung unten

Windows Server 2012

PowerShell 3.0

PowerShell 4.0 mit Windows Management Framework 4.0

siehe Warnung unten

Windows Server 2012 R2 und Windows 8.1

PowerShell 4.0

PowerShell 5.0 mit Windows Management Framework 5.0

noch Preview-Status

Warnung: Einige Dienste und Anwendungen kommen jedoch nicht mit einer neueren Version zurecht. So sollen beispielsweise der Microsoft Exchange Server 2007 und der Windows Small Business Server 2011 Standard nicht mit dem Windows Management Framework 4.0 betrieben werden. (siehe Windows Management Framework 4.0 - System Requirements).

PowerShell 5.0 - die Neuerungen
PowerShell 5.0
Mit der PowerShell 5.0 können Sie Software-Pakete aus dem Internet herunterladen und installieren.
PowerShell 5.0
Für die Anzeige aller Pakete müssen Sie in der PowerShell noch eine Erweiterung installieren.
PowerShell 5.0
In der PowerShell können Sie sich die installierbaren Pakete anzeigen lassen und eigene Filter setzen.
PowerShell 5.0
In der PowerShell 5.0 können Sie auch ZIP-Archive erstellen und extrahieren.