PowerShell lernen Schritt für Schritt – Teil 2: Die Pipeline verstehen

Aktualisiert am 08.11.2026 · Lesezeit ca. 4 Min. · Niveau: Anfänger · von Viktor Tribus, IT-Tribus Nideggen

In diesem Teil der Serie „PowerShell lernen Schritt für Schritt“ fokussieren wir uns auf die Nutzung von Pipelines in PowerShell, um Daten zu filtern, sortieren und auszuwählen. Wenn Sie den ersten Teil erfolgreich absolviert haben, können Sie nun mit neuen Möglichkeiten der Datenverarbeitung experimentieren.

Was Sie in diesem Beitrag lernen

  • Grundlegende Konzepte der PowerShell-Pipeline
  • Nutzung des Cmdlets Where-Object für die Filterung von Objekten
  • Ausführen und Interpretieren von beispielhaften Befehlen
  • Überwinden häufig auftretender Anfängerfehler

Sie benötigen etwa 20 Minuten für diesen Artikel. Sie sollten die Windows PowerShell-Eingabeaufforderung mit Administratorrechten verwenden, die Sie über das Startmenü oder die Tastenkombination Win + X → „Windows PowerShell (Admin)“ öffnen können.

Das Prinzip einfach erklärt

Vorstellen Sie sich die Pipeline als eine Fließband-Verarbeitung: Objekte kommen herein, werden bearbeitet und weitergeleitet. Ein gutes Analogon ist das Sortieren von Posten in einem Briefkasten. Stellen Sie sich vor, Sie haben einen Stapel von Briefen (Objekte) und möchten nur die Briefe aus einer bestimmten Stadt herausfiltern (Filterung). In PowerShell leiten wir Objekte durch eine Pipeline, wobei jedes Cmdlet (wie Where-Object) das Objekt bearbeitet und entweder weiterleitet oder ausschließt.

Ihr erstes Beispiel

Beginnen wir mit einem einfachen Beispiel. Wir verwenden die Cmdlets Get-Process, um Prozesse auf Ihrem Computer zu erhalten, und Where-Object, um nur bestimmte Prozesse auszuwählen.

PowerShell (als Administrator)
# Alle Prozesse auf dem System auflisten
Get-Process | Where-Object 

Zusammengefasst macht der Befehl das Folgende:

  • Get-Process: Liefert alle Prozesse auf dem System.
  • |: Leitet die Ergebnisse an den nächsten Befehl weiter (die Pipeline).
  • Where-Object : Filtert nur die Prozesse, deren Name „explorer" ist.

Nachdem Sie diesen Befehl ausgeführt haben, sehen Sie eine Liste mit Informationen zu allen Prozessen mit dem Namen „explorer" (in der Regel den Windows-Explorer).

Schritt für Schritt erweitern

Stufe 1: Filterung nach mehreren Bedingungen

Nehmen wir an, Sie möchten Prozesse filtern, die einen bestimmten Speicherbedarf haben. Hier ist ein Beispiel:

PowerShell (als Administrator)
# Filtere Prozesse mit mehr als 50MB Arbeitsspeicher
Get-Process | Where-Object 

$_ repräsentiert das aktuelle Objekt in der Pipeline, und -gt bedeutet „größer als".

Stufe 2: Kombination mit Select-Object für Auswahl von Eigenschaften

Nehmen wir an, Sie möchten nur bestimmte Eigenschaften wie den Prozessnamen und die CPU-Auslastung anzeigen. Hier ist ein Beispiel:

PowerShell (als Administrator)
# Filtere nach CPU-Auslastung und wähle spezielle Eigenschaften aus
Get-Process | Where-Object  | Select-Object Name, CPU

Select-Object wählt nur die angegebenen Eigenschaften aus.

Stufe 3: Kombination mit Sort-Object für Sortierung der Ergebnisse

Sie können auch die Ergebnisse sortieren. Hier ist ein Beispiel:

PowerShell (als Administrator)
# Filtere nach CPU-Auslastung, wähle Eigenschaften aus und sortiere nach Prozessnamen
Get-Process | Where-Object  | Select-Object Name, CPU | Sort-Object Name

Sort-Object sortiert die Ergebnisse in aufsteigender Reihenfolge nach dem angegebenen Eigenschaftsnamen.

Typische Anfängerfehler

Fehler: Ungültige Syntax bei Where-Object

Meldung: „Where-Object : Cannot bind parameter ‚FilterScript' because it is null."
Lösung: Stellen Sie sicher, dass die Filterbedingung korrekt definiert ist. Verwenden Sie eine geschweifte Klammer , um den Codeblock zu definieren.

Fehler: Ungültiger Eigenschaftsname

Meldung: „Where-Object : The property ‚ProzessName‘ cannot be found on this object.“
Lösung: Überprüfen Sie die korrekten Eigenschaftsnamen, indem Sie Get-Member verwenden. Zum Beispiel: (Get-Process)[0] | Get-Member.

Fehler: Fehlende Verkettung von Cmdlets

Meldung: „The term ‚WhereObject‘ is not recognized as the name of a cmdlet, function, script file, or operable program.“
Lösung: Stellen Sie sicher, dass die Pipeline korrekt verwendet wird: | Where-Object.

Übung für Sie

Erstellen Sie einen Befehl, der alle Prozesse mit mehr als 100 MB Arbeitsspeicher ausgibt und diese nach dem Prozessnamen sortiert. Verwenden Sie die Cmdlets Get-Process, Where-Object und Sort-Object.

Lösungsvorschlag:

PowerShell (als Administrator)
# Lösungsvorschlag
Get-Process | Where-Object  | Sort-Object Name

Spickzettel

Befehl/Syntax Bedeutung Beispiel
| Where-Object Filtert Objekte anhand der Bedingung im Codeblock.
PowerShell (als Administrator)
Get-Process | Where-Object 
| Select-Object Property1, Property2 Wählt spezifische Eigenschaften aus.
PowerShell (als Administrator)
Get-Process | Where-Object  | Select-Object Name, CPU
| Sort-Object PropertyName Sortiert die Ergebnisse nach einer Eigenschaft.
PowerShell (als Administrator)
Get-Process | Where-Object  | Select-Object Name, CPU | Sort-Object Name
| Measure-Object PropertyName Berechnet statistische Werte wie Summe oder Durchschnitt.
PowerShell (als Administrator)
Get-Process | Where-Object  | Measure-Object WorkingSet -Sum
| Group-Object PropertyName Gruppiert die Ergebnisse nach einer Eigenschaft.
PowerShell (als Administrator)
Get-Process | Where-Object  | Group-Object Name
| ConvertTo-Csv Konvertiert die Ergebnisse in CSV-Format.
PowerShell (als Administrator)
Get-Process | Where-Object  | Select-Object Name, CPU | ConvertTo-Csv

Häufige Fragen

Wie kann ich mehrere Bedingungen in der Filterung verwenden?

Sie können logische Operatoren wie -and, -or und -not verwenden, um komplexe Bedingungen zu erstellen. Beispiel:

PowerShell (als Administrator)
Get-Process | Where-Object 

Kann ich die Pipeline auch für Dateien verwenden?

Ja, Sie können die Pipeline für die Verarbeitung von Dateiinhalten verwenden. Zum Beispiel: Get-Content C:\logfile.txt | Where-Object filtert Zeilen mit dem Wort „Error" aus einer Logdatei.

Was passiert, wenn ich mehrere Filter in der Pipeline habe?

Die Objekte werden nacheinander durch die einzelnen Cmdlets geleitet. Jedes Cmdlet kann das Ergebnis weiterverarbeiten und nur bestimmte Objekte weiterleiten.

Kann ich den Befehl in einer Datei speichern und ausführen?

Ja, Sie können PowerShell-Befehle in eine Skriptdatei (.ps1) schreiben. Verwenden Sie zum Ausführen das Cmdlet &. Beispiel:

PowerShell (als Administrator)
& C:\PowershellScripts\filter.ps1

Fazit und nächster Schritt

In diesem Teil haben wir uns mit der PowerShell-Pipeline beschäftigt, insbesondere das Cmdlet Where-Object verwendet. Sie sollten nun in der Lage sein, Objekte zu filtern, Eigenschaften auszuwählen und Ergebnisse zu sortieren. Im nächsten Teil „Variablen, Arrays und Hashtables“ werden wir uns mit der Verwendung von Variablen in PowerShell auseinandersetzen. IT-Tribus in Nideggen steht Ihnen bei Fragen zur Umsetzung gerne zur Verfügung.

Serie: PowerShell lernen Schritt für Schritt – Teil 2 von 5

← Vorheriger Teil: PowerShell lernen Schritt für Schritt – Teil 1: Hilfe nutzen und erste Cmdlets

→ Als Nächstes: Teil 3: Variablen, Arrays und Hashtables (erscheint in Kürze)

Quellen und weiterführende Informationen

Hinweis: Dieser Beitrag wurde am 08.11.2026 mit KI-Unterstützung erstellt, auf Basis der genannten Quellen eigenständig formuliert und redaktionell von IT-Tribus betreut. Alle Angaben ohne Gewähr – bitte prüfen Sie Befehle vor dem Einsatz in produktiven Umgebungen und legen Sie vorher eine Sicherung an.

Benötigen Sie Unterstützung bei PowerShell Pipeline Where-Object?

IT-Tribus ist Ihr IT-Dienstleister aus Nideggen. Vor Ort helfen wir in Düren, im Kreis Düren und in der Region Aachen – Monitoring und Fernwartung mit NinjaOne bieten wir Unternehmen auch überregional an.

Kostenlose Erstanalyse anfordern
📞 02427 9099860