PowerShell-Befehle helfen dir, Dateien zu finden, Prozesse zu prüfen und wiederkehrende Aufgaben zu automatisieren. Für den Einstieg brauchst du keine lange Liste mit riskanten Verwaltungsaktionen. Die folgenden 20 Befehle decken die häufigsten Schritte ab: Hilfe finden, Ergebnisse filtern, Dateien bearbeiten und Daten exportieren.
Die meisten Beispiele funktionieren mit PowerShell 7 unter Windows, Linux und macOS. Befehle für Windows-Dienste, Ereignisprotokolle und CIM sind eigens gekennzeichnet. Prüfe deine laufende Version mit $PSVersionTable.PSVersion. Windows PowerShell 5.1 und PowerShell 7 können auf demselben Rechner installiert sein; die verfügbaren Module unterscheiden sich teilweise.
Wie liest du PowerShell-Befehle?
Viele Befehle heißen Cmdlets und folgen dem Muster Verb-Substantiv: Get-Process liest Prozesse, New-Item erstellt ein Element. Hinter einem Bindestrich stehen Parameter wie -Path. Das Zeichen | verbindet Befehle zu einer Pipeline. Dabei werden in PowerShell häufig Objekte mit Eigenschaften weitergereicht, nicht nur Textzeilen. So kannst du nach einer Eigenschaft filtern und anschließend nur die gewünschten Spalten anzeigen.
PowerShell-Befehle entdecken und verstehen (1–3)
1. Get-Help: Beispiele und Parameter nachschlagen
Get-Help Get-Process -Examples
Get-Help zeigt die Hilfe zu einem Befehl. Mit -Examples bekommst du konkrete Aufrufe. Falls lokal nur die Kurzfassung vorhanden ist, öffnet Get-Help Get-Process -Online die Dokumentation im Browser.
2. Get-Command: verfügbare Befehle finden
Get-Command -Name *-Process
Das Sternchen steht für beliebigen Text. So findest du installierte Befehle rund um Prozesse, ohne ihren vollständigen Namen zu kennen. Welche Treffer erscheinen, hängt auch von deinen installierten Modulen ab.
3. Get-Member: Eigenschaften eines Objekts ansehen
Get-Process | Get-Member
Get-Member zeigt Eigenschaften und Methoden der Prozessobjekte. Damit findest du heraus, welche Werte du später mit Where-Object filtern oder mit Select-Object ausgeben kannst.
Dateien und Ordner verwalten (4–10)
4. Set-Location: Verzeichnis wechseln
Set-Location -Path $HOME
Der Befehl wechselt in dein Benutzerverzeichnis. $HOME ist eine PowerShell-Variable für diesen Pfad. Mit Get-Location kannst du bei Bedarf den aktuellen Pfad anzeigen.
5. Get-ChildItem: Inhalte auflisten
Get-ChildItem -Path . -File
Das Beispiel listet Dateien im aktuellen Ordner auf. Der Punkt steht für das aktuelle Verzeichnis. Mit -Recurse werden auch Unterordner durchsucht; bei großen Ordnerbäumen kann das länger dauern.
6. Test-Path: prüfen, ob ein Pfad existiert
Test-Path -Path .\bericht.txt
Das Ergebnis ist True oder False. In Skripten kannst du so vor dem Lesen oder Kopieren kontrollieren, ob eine Datei oder ein Verzeichnis vorhanden ist.
7. New-Item: ein Verzeichnis erstellen
New-Item -ItemType Directory -Path .\archiv -Force
Der Befehl legt im aktuellen Ordner das Verzeichnis archiv an. -Force verhindert hier einen Fehler, wenn dieses Verzeichnis bereits existiert. Prüfe bei anderen Einsätzen von -Force dennoch die Wirkung des jeweiligen Befehls.
8. Copy-Item: eine Datei kopieren
Copy-Item -Path .\bericht.txt -Destination .\archiv\bericht.txt
Dieses Beispiel setzt voraus, dass bericht.txt vorhanden ist und das Verzeichnis archiv angelegt wurde. Copy-Item kopiert die Datei; das Original bleibt bestehen.
9. Remove-Item: Löschvorgang zuerst prüfen
Remove-Item -Path .\archiv\bericht.txt -WhatIf
-WhatIf zeigt an, was der Befehl tun würde, ohne die Datei zu löschen. Entferne den Parameter erst, wenn der Pfad stimmt und die Löschung beabsichtigt ist. Gerade bei Platzhaltern und -Recurse ist diese Prüfung wichtig.
10. Get-Content: Textdateien lesen
Get-Content -Path .\bericht.txt -Tail 20
Der Befehl liest die letzten 20 Zeilen einer Textdatei. Das ist zum Beispiel für kleine Protokolldateien praktisch. Die Datei muss am angegebenen Pfad existieren.
Text und Objekte auswerten (11–14)
11. Select-String: Text in Dateien suchen
Select-String -Path .\*.log -Pattern 'Fehler'
Select-String sucht hier in .log-Dateien des aktuellen Ordners nach dem Wort „Fehler“. Die Ausgabe enthält Fundstellen und Zeilennummern. Passe Muster und Pfad an deine Dateien an.
12. Where-Object: Ergebnisse filtern
Get-ChildItem -File | Where-Object Length -gt 10MB
Die Pipeline zeigt Dateien im aktuellen Ordner, deren Eigenschaft Length größer als zehn Megabyte ist. Das Beispiel liest Dateieigenschaften und ändert nichts.
13. Select-Object: Eigenschaften auswählen
Get-Process | Select-Object -Property Name, Id -First 5
Damit siehst du von fünf Prozessobjekten nur Name und ID. Select-Object ist besonders hilfreich, wenn ein Befehl sehr viele Eigenschaften liefert.
14. Sort-Object: Ausgabe sortieren
Get-Process | Sort-Object -Property CPU -Descending |
Select-Object -Property Name, Id, CPU -First 10
Der Befehl sortiert Prozesse nach der bisher verbrauchten CPU-Zeit. CPU ist hier keine momentane Auslastung in Prozent. Für eine aktuelle Leistungsüberwachung benötigst du andere Messwerte.
Prozesse und Windows-Systeminformationen prüfen (15–18)
15. Get-Process: laufende Prozesse anzeigen
Get-Process
Du erhältst eine Liste der Prozesse auf dem lokalen Rechner. Weitere Eigenschaften lassen sich mit den Befehlen aus dem vorigen Abschnitt filtern und sortieren.
16. Get-Service: Dienste anzeigen – nur Windows
Get-Service | Select-Object -Property Name, Status -First 10
Dieses Cmdlet ist unter PowerShell 7 nur auf Windows verfügbar. Es zeigt den Status lokaler Windows-Dienste. Um Dienste zu starten oder zu stoppen, brauchst du je nach Dienst zusätzliche Rechte; das ist für diese Bestandsaufnahme nicht nötig.
17. Get-WinEvent: Ereignisprotokolle lesen – nur Windows
Get-WinEvent -LogName System -MaxEvents 10
Damit liest du die letzten zehn Einträge des Windows-Systemprotokolls. Für manche Protokolle können erhöhte Rechte nötig sein. Das ältere Get-EventLog aus vielen Anleitungen ist für PowerShell 7 keine gute allgemeine Empfehlung.
18. Get-CimInstance: Systemdaten abfragen – nur Windows
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object Caption, Version, LastBootUpTime
Das Beispiel liest Angaben zum Windows-Betriebssystem über CIM/WMI. Das früher häufig verwendete Get-WmiObject gehört zu Windows PowerShell 5.1 und steht in PowerShell 7 nicht als allgemeines Cmdlet bereit.
Daten exportieren und erneut einlesen (19–20)
19. Export-Csv: Objekte als CSV speichern
Get-Process |
Select-Object Name, Id |
Export-Csv -Path .\prozesse.csv -NoTypeInformation -Encoding utf8
Die Datei prozesse.csv wird im aktuellen Ordner angelegt oder ersetzt. PowerShell verwendet standardmäßig ein Komma als Trennzeichen. Wenn du die Datei in einem Programm mit deutschem Semikolon-Format öffnen willst, kannst du Export und Import passend mit -Delimiter ';' ausführen.
20. Import-Csv: CSV-Daten wieder einlesen
Import-Csv -Path .\prozesse.csv |
Select-Object -Property Name, Id -First 5
Die Zeilen werden als Objekte mit Eigenschaften aus den Spaltenüberschriften eingelesen. Beachte: Importierte CSV-Werte sind zunächst Text. Wenn du damit rechnen möchtest, musst du Zahlen bei Bedarf in einen geeigneten Datentyp umwandeln.
Welche PowerShell-Befehle solltest du zuerst lernen?
Starte mit den lesenden Befehlen Get-Help, Get-Command, Get-ChildItem und Get-Process. Kombiniere sie anschließend mit Where-Object, Select-Object und Sort-Object. Erst wenn du sicher erkennen kannst, welche Objekte eine Pipeline trifft, solltest du Änderungen wie Kopieren oder Löschen automatisieren.
Eine Einführung in Shell, Skripte und Versionen findest du im Beitrag Was ist PowerShell?. Wenn du daraus ein eigenes Skript machen möchtest, hilft dir anschließend die Anleitung Mit PowerShell starten.
Häufige Fragen zu PowerShell-Befehlen
Funktionieren alle 20 Befehle unter Linux und macOS?
Nein. Die Befehle 16 bis 18 sind Windows-spezifisch. Auch bei plattformübergreifenden Cmdlets können sich Pfade und Dateisysteme unterscheiden. Prüfe deshalb bei Skripten für mehrere Systeme die jeweilige Umgebung.
Muss ich PowerShell als Administrator starten?
Für die meisten lesenden Beispiele nicht. Einige Systeminformationen oder Änderungen an geschützten Bereichen erfordern zusätzliche Rechte. Starte die Shell nur dann erhöht, wenn die konkrete Aufgabe es verlangt.
Hilft Set-ExecutionPolicy gegen schädliche Skripte?
Die Ausführungsrichtlinie kann unter Windows versehentliche Skriptstarts einschränken, ist laut Microsoft aber keine Sicherheitsgrenze. Ändere sie nicht pauschal, nur damit ein unbekanntes Skript läuft. Prüfe zuerst Quelle, Inhalt und erforderliche Berechtigungen. Auf Linux und macOS wird die Windows-Ausführungsrichtlinie nicht durchgesetzt.
Fazit
Diese 20 PowerShell-Befehle decken die wichtigsten Grundlagen ab: Hilfe, Navigation, Dateiarbeit, Filter, Systemprüfung und CSV-Berichte. Der eigentliche Gewinn entsteht, wenn du die Befehle über die Pipeline verbindest und vor Änderungen die betroffenen Objekte kontrollierst. Für Details zu Parametern und unterstützten Plattformen ist die offizielle PowerShell-Dokumentation die verlässlichste Referenz.