24.3 Die Windows PowerShell in der Praxis 

Microsoft richtet ein besonderes Augenmerk auf die Windows PowerShell. Während die Eingabeaufforderung (auch bekannt als cmd.exe) schon seit Windows-Urzeiten mehr oder weniger unverändert geblieben ist, unterliegt die Windows PowerShell einer regen Entwicklung. Der folgende Abschnitt gibt einige Handreichungen zum Umgang mit diesem Werkzeug.
24.3.1 Windows PowerShell-Module und -Cmdlets 

Die Befehle, die Sie in der Windows PowerShell ausführen können, werden Cmdlets genannt. Diese sind in sog. Modulen enthalten, die bestimmte Oberthemen (z. B. das Druck- oder Netzwerkmanagement) umfassen. Um sich einen Überblick zu verschaffen, wie viele Module zugänglich sind, gehen Sie folgendermaßen vor:
1 |
Starten Sie die Windows PowerShell, indem Sie einen Rechtsklick über dem Windows-Logo durchführen und im Schnellstartmenü Windows PowerShell auswählen. |
2 |
Geben Sie folgenden Befehl in der Windows PowerShell ein: Get-Module -ListAvailable Dadurch werden sämtliche Module der Windows PowerShell aufgelistet, die aktuell auf Ihrem Windows-System verfügbar sind. |
3 |
Die Cmdlets sind Untermengen der gelisteten Module. Möchten Sie sich einen Eindruck von der Anzahl der zur Verfügung stehenden Cmdlets verschaffen, geben Sie einfach folgenden Befehl ein: Get-Command -CommandType Cmdlet, Function Die Anzahl der nun aufgelisteten Cmdlets und Funktionen ist sehr beachtlich. Bei einfachen Aktionen, die mit ein oder zwei Befehlen ausgeführt werden können, genügt die Eingabe der Befehle innerhalb der Windows PowerShell. Wer allerdings anspruchsvolle Skripte (das ist selbstverständlich auch mit der Windows PowerShell möglich, dort aber entsprechend aufwendiger) erstellen möchte, der verwendet dazu die Windows PowerShell ISE (die Abkürzung ISE steht für Integrated Scripting Environment). Diese Entwicklungsumgebung bietet äußerst komfortable Funktionen für Programmierer, u. a. eine ausgefeilte Hilfe und die Möglichkeit, Befehle automatisch ergänzen zu lassen. Sehen wir uns die ISE der PowerShell einmal etwas genauer an: |
1 |
Bereich zur Erstellung eines Skripts |
2 |
PowerShell |
3 |
Liste aller zur Verfügung stehenden Cmdlets und Funktionen (Die Darstellung ist auf einzelne Module reduzierbar.) |
Zur Erstellung eines Skripts schreibt man die Befehle in den Skriptbereich. Alternativ wählt man sie im rechten Fensterbereich aus. Dabei lassen sich auch mögliche Parameter in einem Unterfenster auflisten.
Abbildung 24.6 Die ISE zeigt auch mögliche Parameter zu speziellen Cmdlets.
24.3.2 Beispiele für PowerShell-Befehle und Skripte 

Die folgenden Beispiele dienen als Einstieg in die Welt der Windows-PowerShell-Nutzung und Skriptprogrammierung. Natürlich kann das komplexe Thema im Rahmen des Buches nur grob angerissen werden.
In unserem ersten Beispiel wollen wir uns die Autostartobjekte anzeigen lassen, also die Programme, die beim Systemstart im Hintergrund geladen werden. Starten Sie die Windows PowerShell, und geben Sie folgenden Befehl ein:
Get-Wmiobject Win32_StartupCommand
Die gleichen Informationen erhalten Sie übrigens auch, wenn Sie das Schnellstartmenü per rechten Mausklick auf das Windows-Logo öffnen und hier auf den Task-Manager klicken. Wechseln Sie nun zum Register Autostart, werden ebenfalls alle Autostartobjekte aufgeführt.
Abbildung 24.7 Darstellung der Startobjekte per Windows PowerShell (oben) und im Task-Manager (unten)
Nun einmal ein etwas komplizierteres Beispiel mit Parametern: Verwenden Sie den folgenden Befehl, um sich die Netzwerkadresse Ihres aktiven Netzwerkadapters anzeigen zu lassen (beachten Sie, dass der Befehl in einer Zeile notiert wird, wie in Abbildung 24.8 zu sehen ist):
Get-wmiobject win32_NetworkAdapterconfiguration -Filter
"IPEnabled=true" | select Description,IPAddress
Abbildung 24.8 Es werden sowohl die IPv4- als auch die IPv6-Netzwerkadresse angezeigt.
Das nächste Beispiel macht Gebrauch von der integrierten Entwicklungsumgebung. Wir wollen damit ein PowerShell-Skript erstellen, welches ein Fenster (genauer: eine sog. MessageBox) öffnet, das zwei anklickbare Schaltflächen (in unserem Fall Ja und Nein) zeigt. Nach dem Anklicken einer entsprechenden Schaltfläche soll die entsprechende Antwort wiedergegeben werden.
Nun kann das Skript nach dem Verlassen der Windows PowerShell ISE zu späteren Zeitpunkten erneut in die ISE geladen werden. Dazu verwenden Sie den Menüpunkt Datei • Öffnen. Die so gespeicherten Skripte können auch direkt aus einer PowerShell heraus gestartet werden, dazu ist aber eine Administrator-PowerShell erforderlich. In der einfachen PowerShell scheitert die Ausführung an den fehlenden Rechten.
Es empfiehlt sich in jedem Fall, die geänderte Sicherheitsrichtlinie der PowerShell nach den obigen Experimenten wieder zurückzusetzen, da diese ein ernsthaftes Sicherheitsrisiko für den alltäglichen Betrieb darstellt. Dies geschieht durch das folgende Kommando, erneut ausgeführt in einer Administrator-PowerShell:
Set-ExecutionPolicy Restricted
Bestätigen Sie die Sicherheitsnachfrage wieder mit J.
[TIPP] Weiterführende Informationen zur PowerShell
Eine schöne Zusammenstellung von Beispielen zu PowerShell-Skripten für Einsteiger finden Sie unter https://www.script-example.com/Powershell-GUI.