Wer eine Windows-basierte IT-Landschaft effektiv verwalten und skalieren will, kommt an der PowerShell nicht vorbei. Das mächtige Tool kann gegenüber grafischen Benutzeroberflächen eine Menge Zeit sparen.
Ein Klick nach dem anderen – viele Windows-Admins haben eine Anzahl an Routineaufgaben, die sie tagein, tagaus erledigen. Sei es das Neustarten eines Servers, das Abrufen von Seriennummern für die Inventarisierung oder das unweigerliche Zurücksetzen eines User-Passwortes. All diese Aufgaben lassen sich durchaus in der GUI von Windows oder einer IT-Management-Suite erledigen. Aber das nimmt nicht nur Zeit in Anspruch, sondern birgt auch mit jeder Wiederholung das Risiko eines Fehlklicks.
Dabei ist eines der mächtigsten Tools, um diese Aufgaben zu automatisieren, nur eine Tastatureingabe entfernt: Die Windows PowerShell. Microsoft beschreibt das Tool als eine plattformübergreifende Lösung zur Automatisierung von Aufgaben, die aus drei Hauptkomponenten besteht:
- eine Kommandozeile,
- eine Skriptsprache und
- ein Framework zum Konfigurationsmanagement.
Zu den Features der Kommandozeile gehören eine robuste Historie, Tab-Vervollständigung und Befehls-Vorhersage, Befehls- und Parameter-Aliase, eine Pipeline für das Verketten von Befehlen und ein Hilfe-System direkt in der Konsole. Das birgt viele Möglichkeiten – konzentrieren wir uns daher für den Anfang auf das Thema Automatisierung von Routineaufgaben.
Drei Gründe, warum PowerShell sich lohnt
Einfache und effektive Automatisierungen: Mächtige Tools, Kommandozeilen und Skriptsprachen gibt es viele, aber lohnt sich der Aufwand, sie zu benutzen, verglichen mit der Zeitersparnis bei den automatisierten Aufgaben? Bei PowerShell in der Regel schon, denn die gängigsten abstrakten Befehle sind bereits in Form von Cmdlets integriert. Diese einfachen Cmdlets dienen als Bausteine für eigenen Code und führen eine Reihe von Aktionen im Hintergrund aus. Sie können einzeln verwendet, aber auch zu komplexen Workflows kombiniert werden. Für erfahrenere Nutzer:innen stehen auch Funktionen zur Verfügung, also in PowerShell geschriebene Skripte. Mit ihnen wird Code nicht nur effektiver, sondern auch leichter zu lesen und zu warten.
Erhöhte Sichtbarkeit im Netzwerk: Nicht selten braucht ein IT-Admin Informationen von einem weit entfernten Rechner, beispielsweise zum BIOS, zu Modellinformationen, zur Betriebssystemversion und mehr. Diese Informationen kann man vor Ort über ein grafisches Menü abrufen – oder aber in wenigen Tastenanschlägen über Cmdlets. Zudem lassen sich mit PowerShell automatische Routinen einrichten, die Kennzahlen von Rechnern überwachen und beim Über- oder Unterschreiten bestimmter Kennwerte Alarm schlagen. Dies macht die Systemwartung proaktiver.
PowerShell ist vielseitig und intuitiv: Ein Beispiel für einen praktischen Helfer für PowerShell ist das Cmdlet Get-Command. Es listet die verfügbaren Befehle für ein Gerät auf, inklusive Cmdlets und komplexerer Funktionen. Die Verb-Nomen-Syntax zeigt: Bei der Sprache wurde Wert darauf gelegt, intuitiv lesbar und zugänglich zu sein. Dieses Muster findet sich überall in der Syntax von PowerShell: In der Regel tun zum Beispiel andere Get-Befehle das Gleiche, nur eben auf ein anderes Nomen bezogen. Microsoft hat eine ausführliche Dokumentation zur Namensgebung für PowerShell. So lassen sich schon nach kurzer Zeit umfangreiche und mächtige Funktionen aus einfachen Cmdlets bauen.
Tipps, um PowerShell zu lernen
Dass PowerShell so nützlich wie intuitiv ist, ist schön und gut. Aber wie kommt man am besten in die Materie hinein? Die folgenden Vorschläge eignen sich für einen schnellen Einstieg:
- Microsoft bietet auf der eigenen Website einen Überblick über Lernpfade und Module für verschiedene Erfahrungsstufen.
- Der 40-minütige Crashkurs vom PowerShell-Experten Adam the Automator ist in kurze Segmente aufgeteilt und lässt sich so auch an hektischen Arbeitstagen einplanen.
- Under The Wire bietet verschiedene Praxisszenarien, um konkrete Handlungsfälle zu üben.
Eine weitere hervorragende Ressource, die jedem Sysadmin kostenlos zur Verfügung steht, sind Communities aus Gleichgesinnten. Nutzer:innen von PowerShell tauschen nicht nur Tipps und Tricks, sondern auch fertige Skripte aus, helfen sich gegenseitig bei Coding-Schwierigkeiten und bringen sich mit Memes zum Schmunzeln. Im englischsprachigen Raum sind die Subreddits r/usefulscripts. und r/PowerShell hervorzuheben. Zudem bieten Anbieter von IT-Management-Software häufig sowohl eine eingefleischte Community aus User:innen als auch fertige Skripte für häufige Use Cases mit Erklärungen, z. B. Zurücksetzen von Benutzerkennwörtern oder Konfigurieren des Kennwortablaufs.