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.