PowerShell
Kurz: Eine moderne, objektbasierte Kommandozeilen- und Skriptsprache von Microsoft für Windows (und mittlerweile plattformübergreifend).
Genauer: Im Unterschied zu klassischen Shells wie CMD, die reinen Text zwischen Befehlen weiterreichen, arbeitet PowerShell mit strukturierten .NET-Objekten — ein Befehl kann direkt auf Eigenschaften des Ergebnisses eines vorherigen Befehls zugreifen, ohne Text parsen zu müssen. Wird stark für Systemadministration und Automatisierung unter Windows eingesetzt.
Im Detail
Objektbasierte Pipelines
Get-Process | Where-Object { $_.CPU -gt 100 } | Sort-Object CPU -Descending
# Eigenschaften eines Objekts direkt weiterverwenden
Get-ChildItem C:\Projekt | Where-Object Extension -eq ".log" | Remove-ItemIn einer klassischen Unix-Shell oder CMD gibt jeder Befehl reinen Text aus, der nächste Befehl in einer Pipe (|) muss diesen Text wieder parsen, um an die gewünschte Information zu kommen (z. B. mit grep/awk/regulären Ausdrücken) — ändert sich das Textformat eines Befehls auch nur leicht, brechen darauf aufbauende Skripte. PowerShell reicht stattdessen strukturierte .NET-Objekte mit benannten Eigenschaften weiter — im Beispiel oben liefert Get-Process eine Liste von Prozess-Objekten, Where-Object filtert direkt anhand der CPU-Eigenschaft, ohne jegliches Text-Parsing. Das macht komplexe Pipelines deutlich robuster gegenüber Formatänderungen der Ausgabe.
Cmdlets und Namenskonvention
Cmdlets (sprich: “Command-lets”, PowerShell-Befehle) folgen einer einheitlichen Verb-Substantiv-Namenskonvention (Get-Process, Stop-Service, New-Item, Remove-Item), was die Sprache deutlich vorhersagbarer macht als die oft kryptischen, historisch gewachsenen Namen klassischer Unix-Kommandos (ls, grep, awk — deren Namen keinem einheitlichen Muster folgen und man schlicht auswendig lernen muss). Microsoft pflegt eine feste Liste erlaubter Verben (Get, Set, New, Remove, Start, Stop und einige mehr), sodass sich auch unbekannte Cmdlets intuitiv erschließen lassen.
Plattformübergreifende Entwicklung
Seit PowerShell Core (Version 6+, 2018) ist PowerShell zudem quelloffen und plattformübergreifend nutzbar (Windows, Linux, macOS), nicht mehr nur ein reines Windows-Tool — Teil von Microsofts breiterer Öffnung gegenüber Open Source und Cross-Platform-Entwicklung. Die ältere, Windows-exklusive “Windows PowerShell” (5.1 und früher) wird parallel weitergepflegt, für Kompatibilität mit älteren Skripten, während neue Entwicklung auf PowerShell Core (heute einfach “PowerShell 7+”) stattfindet.
Einsatzgebiete
PowerShell wird stark für Systemadministration eingesetzt: Nutzerkonten in Active Directory verwalten, Server-Konfiguration automatisieren, geplante Wartungsaufgaben, oder als Automatisierungssprache in CI/CD-Pipelines für Windows-lastige Projekte. Für reine Entwicklungsaufgaben (nicht Systemadministration) greifen viele Entwickler trotzdem eher zu Bash/Python, auch unter Windows — meist über WSL (Windows Subsystem for Linux), das eine echte Linux-Umgebung parallel zu Windows bereitstellt.