- 2 Abschnitte
- 16 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- 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.
Unterschied zwischen CMD und PowerShell
| Shell | Art | Übergabe | Beispiel | Typische Nutzung |
|---|---|---|---|---|
| CMD | Textbasiert | Text | dir | alte Windows-Kommandos |
| Bash | Textbasiert | Text | ls | Linux und macOS |
| PowerShell | Objektbasiert | Objekte | Get-ChildItem | Windows, Server, Automatisierung |
Ein Beispiel:dir in CMD gibt reinen Text aus.Get-ChildItem in PowerShell liefert Dateiobjekte, mit denen du direkt weiterarbeiten kannst.
Aufbau der PowerShell
PowerShell besteht aus mehreren Bausteinen:
Host: Die Oberfläche, z. B. die blaue PowerShell-Konsole oder das Terminal in Visual Studio Code.
Engine: Der „Motor“, der Befehle interpretiert und ausführt.
Cmdlets: Die eigentlichen Befehle, etwa
Get-ServiceoderNew-Item.Provider: Ermöglichen Zugriff auf verschiedene Datenquellen (Dateisystem, Registry, Umgebungsvariablen) mit denselben Befehlen.
Module: Sammlungen thematisch zusammengehöriger Cmdlets, z. B. für Active Directory oder Azure.
PowerShell starten und Version prüfen
PowerShell öffnest du über das Startmenü oder im Windows Terminal.
Die aktuelle plattformübergreifende Variante heißt PowerShell 7 (startet mit pwsh).
Version anzeigen:
$PSVersionTable
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
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.
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
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.
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
