💡 1. Das Verb-Noun Prinzip & PowerShell 7+ Core
PowerShell unterscheidet sich fundamental von klassischen Unix-Shells oder der Windows Eingabeaufforderung. Befehle heißen Cmdlets (ausgesprochen: Command-lets) und folgen strikt der Verb-Noun Syntax (Verb-Substantiv in Einzahl):
# Standard Verb-Noun Syntax:
Get-Process # Verb: Get (Holen), Noun: Process (Einzahl!)
Stop-Service # Verb: Stop, Noun: Service
New-Item # Verb: New, Noun: Item
Set-Content # Verb: Set, Noun: Content
Test-Path # Verb: Test, Noun: Path
Stell dir PowerShell wie eine standardisierte Grammatik vor: Das Verb beschreibt immer die Aktion (Was soll getan werden?), das Noun beschreibt das Zielobjekt (Worauf wird die Aktion angewendet?). Da das Noun immer im Singular steht, musst du dir nie merken, ob ein Befehl Get-Processes oder Get-Process heißt – es ist immer Singular!
🛡️ 2. Microsoft Approved Verbs (Genehmigte Verben)
Microsoft definiert feste Verb-Kategorien zur Wahrung von Konsistenz über alle Module hinweg. Mit Get-Verb kannst du alle standardisierten Verben abrufen:
| Gruppe | Verben | Bedeutung |
|---|---|---|
| Common | Get, Set, New, Remove |
Standard CRUD-Operationen |
| Data | Select, Group, Import, Export, Convert |
Datenverarbeitung und -transformation |
| Lifecycle | Start, Stop, Restart, Suspend, Resume |
Zustandsänderungen von Diensten / Prozessen |
| Diagnostic | Test, Debug, Measure, Trace |
Überprüfung und Diagnose |
🔍 3. Cmdlet-Discovery & Parameter-Arten
PowerShell bietet eine unübertroffene Selbst-Dokumentation (Self-Discovery) direkt in der Konsole:
# 1. Befehle finden nach Verb oder Noun:
Get-Command -Noun Service
Get-Command -Verb Get -Module Microsoft.PowerShell.Management
# 2. Hilfe und Beispiele abrufen:
Get-Help Get-Process -Examples
Get-Help Get-Service -Detailed
# 3. Parameter-Typen:
# - Benannter Parameter: Get-Process -Name "pwsh"
# - Positionaler Parameter: Get-Process "pwsh"
# - Switch Parameter: Get-ChildItem -Recurse
📑 4. Cheat-Sheet: Cmdlet-Architektur
| Cmdlet / Konzept | Syntax-Beispiel | Beschreibung |
|---|---|---|
Get-Command |
Get-Command *-Item* |
Durchsucht alle installierten Module nach Cmdlets, Aliasen & Funktionen. |
Get-Help |
Get-Help Select-Object -Online |
Zeigt Parameter, Syntax, Beschreibungen und Best-Practice Beispiele an. |
Get-Verb |
Get-Verb | Where-Object Group -eq 'Data' |
Listet alle offiziell von Microsoft zugelassenen Verben auf. |
Switch Parameter |
Get-ChildItem -Force |
Boolescher Schalter ohne Argument (-Force:$true). |
🎯 Aufgaben & Checkliste in aufgabe.ps1
Nutze den String-Operator -split '-' zum Zerlegen von Cmdlet-Namen und den -contains bzw. -in Operator zur Überprüfung genehmigter Verben!