- 2 Sections
- 16 Lessons
- unbegrenzt
- Grundlagen & Einstieg9
- Fortgeschritten8
Was ist PowerShell?
PowerShell ist eine moderne Befehlszeile und Skriptsprache, die Microsoft für die Systemverwaltung entwickelt hat.
Im Gegensatz zur klassischen Eingabeaufforderung (CMD), die nur Text versteht, arbeitet PowerShell mit Objekten.
Das heißt: Ein Befehl gibt strukturierte Daten zurück, die Eigenschaften haben (zum Beispiel Name, Größe oder Status) – und keine unformatierten Textzeilen.
Dadurch kannst du Ergebnisse filtern, sortieren oder weiterverarbeiten, ohne sie erst mühsam zu zerlegen.
$PSVersionTable
1. Cmdlets – das Grundprinzip
Jeder Befehl folgt der gleichen Struktur:
Verb-Noun
Beispiele:
Get-ProcessSet-DateRemove-ItemStart-Service
Einheitliche Verben machen das Erlernen leicht.
Ein paar typische Verben:
| Verb | Bedeutung | Beispiel |
|---|---|---|
| Get | Informationen abrufen | Get-Service |
| Set | Werte ändern | Set-ExecutionPolicy |
| New | Etwas Neues erstellen | New-Item |
| Remove | Etwas löschen | Remove-Item |
| Start / Stop | Starten oder Beenden | Start-Service, Stop-Service |
Du kannst dir alle verfügbaren Cmdlets anzeigen lassen:
Get-Command
Get-Command -Verb Get
Get-Command -Noun Service
2. Hilfe aufrufen
PowerShell hat eine eingebaute Hilfe:
Get-Help Get-Process
Get-Help Get-Process -Examples
Get-Help Get-Process -Online
Beim ersten Mal kann Update-Help nötig sein, um die Hilfedateien herunterzuladen.
3. Objektorientiertes Arbeiten
Das Besondere an PowerShell ist, dass sie keine reinen Textausgaben erzeugt.
Ein Beispiel:
Get-Process | Select-Object Name, CPU
Hier liefert jeder Prozess ein Objekt mit Eigenschaften.
Über die Pipeline (|) kannst du diese Objekte an den nächsten Befehl weitergeben.
Welche Eigenschaften ein Objekt besitzt, zeigt dir:
Get-Process | Get-Member
4. Provider – Zugriff auf unterschiedliche Bereiche
PowerShell kann über sogenannte Provider verschiedene Bereiche des Systems ansprechen.
Zum Beispiel kannst du in den Bereich der Umgebungsvariablen wechseln:
Set-Location Env:
Get-ChildItem
Oder in die Windows-Registry:
Set-Location HKLM:\SOFTWARE
Get-ChildItem
Der Zugriff funktioniert immer gleich – egal, ob du dich im Dateisystem, der Registry oder bei Umgebungsvariablen befindest.
5. Praktische Einstiegsbeispiele
Prozesse nach CPU-Nutzung sortieren:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, Id, CPU
Große Dateien (über 1 MB) im aktuellen Ordner anzeigen:
Get-ChildItem -File | Where-Object { $_.Length -gt 1MB } | Select-Object Name, Length
Gestoppte Dienste finden, die eigentlich automatisch starten sollten:
Get-Service | Where-Object { $_.StartType -eq "Automatic" -and $_.Status -ne "Running" } | Select-Object Name, Status
