- 2 Abschnitte
- 16 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- Grundlagen & Einstieg9
- Fortgeschritten8
Cmdlets und Grundsyntax
PowerShell ist kein chaotisches Sammelsurium an Befehlen, sondern extrem konsequent aufgebaut.
Jeder Befehl folgt denselben Sprachregeln – und genau das macht sie so mächtig, sobald man das Prinzip verstanden hat.
Aufbau eines Cmdlets
Ein Cmdlet besteht immer aus zwei Teilen:
Verb-Noun
Beispiel:Get-Process
Verb beschreibt die Aktion (z. B. Get, Set, New, Remove).
Noun beschreibt, worauf sich die Aktion bezieht (z. B. Process, Service, Item).
Das klingt banal, ist aber Gold wert:
Wenn du z. B. weißt, dass „Service“ für Windows-Dienste steht, kannst du intuitiv Get-Service, Stop-Service oder Restart-Service ausprobieren – ohne je in ein Handbuch schauen zu müssen.
Parameter verstehen
Die meisten Cmdlets haben Parameter, mit denen du ihr Verhalten steuerst.
Sie werden mit einem Minuszeichen angegeben, z. B.:
Get-Process -Name notepad
Das Verb „Get“ holt Daten, „Process“ sagt was, und der Parameter -Name grenzt ein, welchen Prozess du meinst.
Parameter können optional oder erforderlich sein.
Manche Cmdlets haben sehr viele Parameter – deshalb lohnt es sich, Hilfe zu nutzen:
Get-Help Get-Process -Full
Positionale Parameter
Nicht immer musst du den Parameternamen schreiben, wenn PowerShell weiß, an welcher Position er erwartet wird.
Das nennt man positionale Parameter.
Get-Process notepad
Das funktioniert genauso wie:
Get-Process -Name notepad
Man sollte trotzdem Parameter benennen, sobald es unklar werden könnte – das spart später Fehler in Skripten.
Mehrere Parameter kombinieren
Ein Cmdlet kann mehrere Parameter gleichzeitig bekommen:
Get-ChildItem -Path C:\Users -Recurse -Force
-Pathgibt den Startpunkt an,-Recursebedeutet, alle Unterordner durchsuchen,-Forcezeigt auch versteckte Dateien an.
Das Ergebnis ist eine vollständige Dateiliste aller Benutzerordner.
Aliase
Viele PowerShell-Cmdlets haben Aliase, also Kurzformen aus der CMD- oder Linux-Welt.
Beispiel:
| Alias | Voller Befehl | Bedeutung |
|---|---|---|
ls | Get-ChildItem | Inhalte anzeigen |
dir | Get-ChildItem | Inhalte anzeigen |
cd | Set-Location | Verzeichnis wechseln |
rm | Remove-Item | Löschen |
cp | Copy-Item | Kopieren |
mv | Move-Item | Verschieben |
Die Aliase sind praktisch zum schnellen Tippen – aber in Skripten solltest du die vollen Cmdlets verwenden, damit der Code verständlich bleibt.
Du kannst deine Aliase übrigens auch selbst ansehen oder eigene erstellen:
Get-Alias
New-Alias gs Get-Service
Die Pipeline
Ein zentrales Konzept ist die Pipeline (|).
Damit leitest du die Ausgabe eines Befehls als Eingabe an den nächsten weiter.
Beispiel:
Get-Service | Where-Object { $_.Status -eq "Running" }
Das liest sich fast wie ein Satz:
„Hole alle Dienste und zeige mir nur die, deren Status = Running ist.“
Der Platzhalter $_ steht für das aktuelle Objekt, das gerade in der Pipeline weitergereicht wird.
Noch ein Beispiel mit Sortierung:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
→ zeigt die 5 Prozesse mit dem höchsten CPU-Verbrauch.
Vergleichsoperatoren
PowerShell nutzt logische Vergleichsoperatoren, um Bedingungen zu prüfen:
| Operator | Bedeutung | Beispiel |
|---|---|---|
| -eq | gleich | $a -eq 5 |
| -ne | ungleich | $a -ne 5 |
| -gt | größer als | $a -gt 10 |
| -lt | kleiner als | $a -lt 3 |
| -like | Mustervergleich | $_ -like "Test*" |
| -match | Regulärer Ausdruck | $_ -match "^[A-Z]" |
Ein einfaches Beispiel:
Get-ChildItem | Where-Object { $_.Extension -eq ".txt" }
→ Zeigt nur Dateien mit der Endung .txt.
Formatierung von Ausgaben
Ergebnisse kann man in PowerShell auf verschiedene Arten formatieren, z. B.:
Get-Service | Format-Table Name, Status
Get-Process | Format-List Name, Id, CPU
Format-Table→ tabellarischFormat-List→ untereinander (praktisch bei vielen Eigenschaften)
Oder du leitest die Ausgabe direkt in eine Datei:
Get-Process | Out-File "C:\Temp\prozesse.txt"
Das Hilfesystem richtig nutzen
PowerShell bringt eine vollständige Hilfefunktion mit.
Sie ist nicht nur Referenz, sondern auch Lernmaterial.
Nützliche Varianten:
Get-Help Get-Service # Kurzinfo
Get-Help Get-Service -Detailed # Detaillierte Beschreibung
Get-Help Get-Service -Examples # Nur Beispiele
Get-Help Get-Service -Online # Öffnet Browserseite
Wenn du alles auf einen Blick sehen willst:
Get-Help *service*
Das sucht in allen Befehlen nach dem Wort „service“.
