PowerShell & Scripting
PowerShell Grundlagen
Objektorientierte Kommandozeile und Skriptsprache von Microsoft.
Allgemeine Infos
PowerShell ist eine aufgabenbasierte Shell mit Skriptsprache auf .NET-Basis und das zentrale Automatisierungswerkzeug in Microsoft-Umgebungen. Cmdlets folgen konsequent dem Verb-Noun-Schema: Get-Process, Set-Item, New-ADUser, Remove-Mailbox. Was zunächst wie eine Konvention wirkt, ist in der Praxis der entscheidende Vorteil: Wer das Schema kennt, kann Cmdlets in unbekannten Modulen durch Get-Command -Verb Get -Module ExchangeOnlineManagement gezielt auffinden, ohne Dokumentation zu öffnen.
Der fundamentale Unterschied zu klassischen Shells wie CMD oder Bash: PowerShell übergibt in der Pipeline keine Textstrings, sondern .NET-Objekte. Das bedeutet, dass Get-Process | Where-Object {$_.CPU -gt 100} nicht auf Textmuster filtert, sondern auf eine typisierte Eigenschaft des Prozessobjekts zugreift. Parsing-Fehler durch unterschiedliche Ausgabeformate entfallen damit vollständig.
Die Versionslandschaft ist für den praktischen Einsatz relevant:
- Windows PowerShell 5.1: In Windows integriert, wird nicht mehr weiterentwickelt. Basis für viele ältere Module (Exchange On-Premises, bestimmte Active-Directory-Cmdlets). Läuft ausschließlich auf Windows.
- PowerShell 7 (Core): Aktiv weiterentwickelt, plattformübergreifend (Windows, Linux, macOS), Open Source (MIT-Lizenz auf GitHub). Parallele Installation zu 5.1 möglich und empfohlen. Nicht alle älteren Module sind mit PS7 kompatibel, insbesondere Exchange-On-Premises-Cmdlets laufen noch auf 5.1.
Für Microsoft-365-Administratoren sind folgende Module tägliche Praxis:
- ExchangeOnlineManagement: Verbindung zu Exchange Online per
Connect-ExchangeOnline, Modern Authentication, MFA-fähig. - Microsoft.Graph: Nachfolger der MSOnline- und AzureAD-Module (beide deprecated). Zugriff auf Entra ID, Benutzer, Gruppen, Lizenzen über Microsoft Graph API.
- Az (Azure PowerShell): Ressourcenverwaltung in Azure, Subscriptions, VMs, Storage, Netzwerk.
- MicrosoftTeams: Teams-Konfiguration, Richtlinien, Benutzer- und Kanalverwaltung per Cmdlet.
Skripte produktionsreif zu machen bedeutet mehr als funktionierende Logik: Fehlerbehandlung über Try/Catch mit $ErrorActionPreference = 'Stop', strukturiertes Logging per Write-Host oder in Logdateien, Parametrisierung über param()-Blöcke statt hartcodierter Werte und Code-Signing für Skripte in Unternehmensumgebungen mit restriktiver Execution Policy. Wer PowerShell-Skripte ohne diese Grundlagen in Produktion bringt, baut technische Schulden, die sich bei der nächsten Umgebungsänderung rächen.
Kurzbeschreibung
Objektorientierte Kommandozeile und Skriptsprache von Microsoft auf .NET-Basis; zentrales Automatisierungswerkzeug für Windows, M365, Azure und Exchange. PowerShell 7 (Core) plattformübergreifend und aktiv weiterentwickelt.
Weiterführende Links
Verwandte Artikel
PHscripts.de | PSscripts.de
PS> Neues in PowerShell 7.5?
Microsoft 365
Microsoft Purview | Automatisierte Anwendung von Sensitivity Labels
PHscripts.de | PSscripts.de