PowerShell-Code: Befehle, Beispiele und Tipps

Einleitung in PowerShell-Code

PowerShell ist ein modernes Aufgabenautomatisierungs-Framework und eine Kommandozeilen-Shell von Microsoft, die auf dem .NET-Framework aufbaut. Es wurde speziell entwickelt, um Systemadministrationsaufgaben effizient zu automatisieren. PowerShell-Skripte erhalten die Dateiendung .ps1 und nutzen sogenannte Cmdlets – spezialisierte Befehle, die nach dem Verb-Nomen-Schema benannt sind. Die Sprache unterstützt Objektpipelines, Variablen, Schleifen (for, foreach, while) und bedingte Anweisungen (if, switch, else). Dadurch eignet sich PowerShell hervorragend für komplexe Automatisierungslösungen, besonders in Windows-Umgebungen, aber dank PowerShell Core auch auf Linux und macOS. In diesem Artikel erhalten Sie eine umfassende Einführung in PowerShell-Code: grundlegende Befehle, praxisnahe Beispiele, wichtige Cmdlets, Sicherheitseinstellungen und wertvolle Tipps für den Alltag.

Die Entwicklung von PowerShell begann 2003 unter dem Codenamen Monad und wurde 2006 als Windows PowerShell veröffentlicht. Seit 2016 ist PowerShell als Open-Source-Projekt unter der MIT-Lizenz auf GitHub verfügbar. Diese Entwicklung hat die Verbreitung erheblich gesteigert. Die aktuelle Version PowerShell 7 läuft plattformunabhängig und bietet nahezu alle Funktionen der Vorgängerversion, ergänzt um verbesserte Kompatibilität und Leistung. Wer heute mit PowerShell-Code arbeitet, sollte daher die neueste Version verwenden.

PowerShell-Code: Befehle, Beispiele und Tipps - 1

Grundlegende PowerShell-Befehle und ihre Anwendung

Die Basis der PowerShell bilden die Cmdlets. Jedes Cmdlet folgt dem Schema Verb-Nomen, zum Beispiel Get-Process, Set-Service oder Remove-Item. Das Verb beschreibt die Aktion, das Nomen das Objekt, auf das die Aktion angewendet wird. Die wichtigsten Cmdlets für den Einstieg sind Get-Command, Get-Help und Get-Process. Mit Get-Command erhalten Sie eine vollständige Liste aller verfügbaren Cmdlets. Get-Help liefert zu jedem Befehl detaillierte Informationen, einschließlich Syntax, Parametern und Beispielen. So können Sie selbst komplexe Befehle schnell nachschlagen.

Ein weiteres zentrales Element sind die Pipelines. Im Gegensatz zu klassischen Shells, die nur Text weiterreichen, arbeitet PowerShell objektorientiert. Das bedeutet: Das Ergebnis eines Cmdlets ist ein Objekt, das direkt an das nächste Cmdlet übergeben werden kann. Ein typisches Beispiel ist die Filterung von Prozessen: Get-Process | Where-Object { $_.WorkingSet -gt 100MB }. Dieser Befehl zeigt nur Prozesse an, die mehr als 100 MB Arbeitsspeicher belegen. Die Objektorientierung erlaubt eine sehr präzise Datenverarbeitung, ohne dass man sich mit Textparsing herumschlagen muss.

PowerShell-Code: Befehle, Beispiele und Tipps - 2

Neben den standardmäßigen Cmdlets gibt es zahlreiche Module, die Sie nachladen können. Das ActiveDirectory-Modell ist für Administratoren besonders wichtig. Mit Get-ADUser und Get-ADComputer können Sie Benutzer und Computer im Verzeichnisdienst abfragen. Ein häufiges Skript ist die Abfrage kürzlich erstellter Benutzer:

$Fecha = (Get-Date).AddDays(-7)

PowerShell-Code: Befehle, Beispiele und Tipps - 3

Get-ADUser -Filter {whenCreated -ge $Fecha} -Properties Name,Enabled,whenCreated

Dieses Skript listet alle Active Directory-Benutzer auf, die in den letzten sieben Tagen angelegt wurden, und zeigt deren Namen, aktivierten Status und Erstellungszeitpunkt. Solche Skripte sind im IT-Alltag unverzichtbar.

PowerShell-Code: Befehle, Beispiele und Tipps - 4

Schleifen, Bedingungen und Funktionen in PowerShell

Die PowerShell-Skriptsprache unterstützt alle gängigen Kontrollstrukturen. for-Schleifen durchlaufen einen Codeblock eine festgelegte Anzahl von Malen. foreach-Schleifen iterieren über eine Sammlung von Objekten, etwa alle Prozesse. while-Schleifen laufen, solange eine Bedingung wahr ist. Bedingte Anweisungen wie if, elseif und else erlauben Verzweigungen. Der switch-Befehl bietet eine kompakte Alternative zu mehrfachen if-Abfragen. Beispiel für eine einfache Schleife:

for ($i = 1; $i -le 10; $i++) { Write-Output $i }

PowerShell-Code: Befehle, Beispiele und Tipps - 5

Dieser Code gibt die Zahlen 1 bis 10 aus. In PowerShell können Sie auch benutzerdefinierte Funktionen erstellen, um wiederkehrende Aufgaben zu kapseln. Eine Funktion wird mit function keyword definiert und kann Parameter, Rückgabewerte und erweiterte Fehlerbehandlung enthalten. Funktionen erhöhen die Lesbarkeit und Wiederverwendbarkeit Ihres PowerShell-Codes.

Ein weiteres nützliches Feature ist die Fehlerbehandlung. Mit try, catch und finally können Sie Laufzeitfehler abfangen und angemessen reagieren. Anstatt dass ein Skript bei einem Fehler abbricht, können Sie etwa eine Warnung ausgeben oder eine alternative Aktion ausführen. Beispiel:

try { Get-Process -Name "NichtVorhanden" } catch { Write-Warning "Prozess nicht gefunden" }

Dieser Block verhindert, dass das Skript mit einer Fehlermeldung endet, und gibt stattdessen eine benutzerfreundliche Warnung aus.

PowerShell Scripting Windows Befehle Beispiele Automation IT
Hinweis Die Inhalte dienen zur allgemeinen Information und ersetzen keine individuelle Beratung.
Autor

Stefano Barcellos

Mitwirkender bei Visite Barbados.

« Vorheriger Beitrag
Standardbrowser ändern: So geht’s einfach und schnell

Ähnliche Beiträge