PowerShell 3.0: Workflows, zeitgesteuerte Scripts, robuste Sessions


    Tags: ,

    Das neue show-command in PowerShell 3.0Mit Windows 8 bringt Microsoft die nächste Version von PowerShell, die auch für Windows 7 und Server 2008 R2 verfügbar sein wird. Zu den wichtigsten Neuerungen zählt die Unterstützung für lang laufende Aktionen bei komplexen Management-Aufgaben, das Abbrechen und erneute Aufbauen von Verbindungen zu Sessions auf entfernten PCs, die Delegierung der Script-Ausführung an User mit geringeren Rechten sowie das zeitgesteuerte Starten von PowerShell-Tasks.

    Die neue PowerShell ist in das Windows Management Framework 3.0 eingebettet, das neben der Scriptumgebung auch aktualisierte Versionen von WMI und WinRM enthält. Interessant an WMI 3.0 ist ein neues Client-API, auf dessen Basis Tools in Zukunft auch Zielrechner verwalten können, die nicht unter Windows laufen.

    Zugriff auf Workflow Foundation

    Die auffälligste Neuerung von PowerShell 3.0 besteht in der Integration mit der Windows Workflow Foundation, die es erlaubt, lang laufende Scripts zu erstellen, die umfangreiche Aufgaben wie die Verteilung von Software erledigen. Auf Basis der WWF können Scripts Aktionen parallel ausführen, von Bedingungen oder dem Abschluss anderer Aktionen abhängig machen. Solche lang laufenden Scripts lassen sich unterbrechen und später wieder aufnehmen.

    Aufgrund der Komplexität der Workflow-Programmierung mit PowerShell richtet sich dieses Feature weniger an den Administrator, sondern an Tools-Hersteller und Microsoft selbst. Dies zeigt sich vor allem an der starken Aufwertung von PowerShell in Windows 8 Server, wo die Zahl der Cmdlets im Vergleich zu Windows Server 2008 R2 von rund 200 auf über 2300 steigt.

    Die zentrale Bedeutung von PowerShell manifestiert sich dort vor allem dadurch, dass die Befehle in den neuen grafischen Management-Tools mit Cmdlets und Scripts hinterlegt sind. Für komplexere Aufgaben können sie nun Workflows auf Basis der WWF definieren.

    Remote Session unterbrechen und wiederaufnehmen

    Einen Fortschritt im Remote-Management von PCs bringen die so genannten Robust Sessions, die Netzwerkunterbrechungen überstehen können. Zusätzlich bieten sie die Möglichkeit, die Verbindung zu Sessions zu unterbrechen und später wiederherzustellen (Disconnect-PSSession und Connect-PSSession) bzw. auch von einem anderen Rechner aus aufzubauen. Dieses Feature findet sich auch in der neuen Version von WinRM.

    Scripts zeitgesteuert ausführen

    PowerShell 3.0 enthält als weiteres Novum eine ganze Reihe von Cmdlets, mit der sich Aufgaben zeitgesteuert ausführen lassen. Sie können neue Jobs anlegen, auflisten, anhalten oder modifizieren. Damit entfällt die Notwendigkeit, Scripts über die Aufgabenplanung zeitgesteuert auszuführen, die Terminierung erfolgt über das Script selbst. Wie beim Task-Planer lassen sich Jobs nicht nur zu bestimmten Zeiten ausführen, sondern auch abhängig von bestimmten Ereignissen anstoßen. Allerdings bietet hier die PowerShell nur die Events Startup und Logon.

    Runas für Scripts

    Zu den weiteren Neuerungen in Version 3.0 zählt auch die Möglichkeit, die Ausführung von Scripts an Benutzer zu delegieren, die eigentlich nicht die dafür erforderlichen Rechte besitzen. Zu diesem Zweck implementiert die PowerShell einen RunasUser-Befehl, die von ihm erwarteten Anmeldeinformationen eines privilegierten Kontos lassen sich sicher im WSMan-Provider hinterlegen.

    Cmdlets für HTTP-Requests

    Wie bei einem größeren Update üblich, bringt es neben den größeren Neuerungen zahlreiche kleinere Veränderungen. PowerShell 3.0 wartet beispielsweise mit einer Update-fähigen Hilfe (mit dem Cmdlet Update-Help) auf und erlaubt es, mit Hilfe der Variablen $PSDefaultParameterValues Standardwerte für Parameter von Cmdlets zu speichern. Dies spart Tipparbeit, allerdings ist diese Einstellung nur während der aktuellen Sitzung gültig, wenn sie nicht in ein PowerShell-Profil eingetragen wird.

    Außerdem enthält die neue Version Cmdlets, mit denen man Anfragen über HTTP absetzen (Invoke-WebRequest) und Web-Services (Invoke-RestMethod) aufrufen kann.

    Einfachere Syntax für Schleifen

    In PowerShell 3.0 vereinfacht Microsoft die Syntax für Schleifen mit ForEach und Where, so dass dafür keine Blöcke und Klammern mehr nötig sind. Während hier die bisherige Konvention weiterhin gültig ist und sich bestehende Scripts ohne Anpassung weiterverwenden lassen, ändert sich das Verhalten von einigen wenigen Cmdlets solcherart, dass sie nicht zu bestehenden Scripts kompatibel sind.

    Keine Portierung auf XP und Vista

    Während PowerShell 3.0 Bestandteil von Windows 8 (Client und Server) sein wird, muss man es für Windows 7 und Server 2008 R2 nachinstallieren. Wie schon bei PowerShell 2.0 für Windows XP ist sie Teil des aktualiserten Windows Management Frameworks, das es in einer 32- und 64-Bit-Ausführung gibt und das Service Pack 1 voraussetzt.

    Ältere Windows-Versionen wie XP oder Vista werden nicht unterstützt, so dass PowerShell 3.0 auf absehbare Zeit auf der Mehrzahl der Firmen-PCs nicht laufen wird. Das Windows Management Framework ist derzeit als Community Technology Preview verfügbar.

    1 Kommentar

    Bild von Peter Kriegel
    28. Mai 2012 - 16:15

    Mein Artikel über die neue PowerShell Version 3.0 Beta
    Ich habe versucht ALLE zur Zeit bekannten neuen Features der PowerShell V3 aufzuführen
    http://www.admin-source.de/BlogDeu/323/neue-features-in-powershell-versi...