Das Pipeline-Prinzip
- Die Pipeline als Objektfluss verstehen
- Objekte mit
Get-Memberuntersuchen - Ergebnisse filtern, sortieren und auswählen
- Formatierung (
Format-*) von Datenverarbeitung trennen
In klassischen Shells wandert Text durch die Pipeline. In PowerShell wandern Objekte. Das nächste Cmdlet kann deshalb direkt mit Eigenschaften wie Name oder Id arbeiten, ohne Text zerlegen zu müssen.

1. Die Pipeline in Aktion
Abschnitt betitelt „1. Die Pipeline in Aktion“Mit dem Pipe-Zeichen | reichst du die Ausgabe eines Cmdlets an das nächste weiter.
Get-Service | Sort-Object StatusGet-Service liefert Dienst-Objekte. Sort-Object sortiert sie nach der Eigenschaft Status.
2. Objekte untersuchen mit Get-Member
Abschnitt betitelt „2. Objekte untersuchen mit Get-Member“Welche Eigenschaften hat ein Objekt? Get-Member verrät es.
Get-Service | Get-MemberGet-Service | Get-Member -MemberType PropertyDie Spalte TypeName oben zeigt, welche Art Objekt durch die Pipeline läuft. Properties (Eigenschaften) sind Daten, Methods sind Aktionen.
3. Auswählen, Sortieren, Filtern
Abschnitt betitelt „3. Auswählen, Sortieren, Filtern“Drei Cmdlets brauchst du ständig. Sie werden an Tag 2 vertieft. Hier die Kurzfassung:
| Cmdlet | Aufgabe | Beispiel |
|---|---|---|
Select-Object |
Eigenschaften auswählen, Anzahl begrenzen | Select-Object Name, Status · Select-Object -First 5 |
Sort-Object |
sortieren | Sort-Object CPU -Descending |
Where-Object |
nach Bedingung filtern | Where-Object Status -eq 'Running' |
Measure-Object |
zählen und rechnen | Measure-Object · Measure-Object Length -Sum |
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5Für Where-Object gilt: Du gibst die Eigenschaft, einen Vergleichsoperator und einen Wert an.
Get-Service | Where-Object Status -eq 'Running'Die Vergleichsoperatoren (-eq gleich, -ne ungleich, -gt größer, -lt kleiner, -like Wildcard) behandeln wir am Anfang von Tag 2 genau. Für heute reicht: -eq bedeutet „ist gleich”.
4. Formatieren ist nur für die Anzeige
Abschnitt betitelt „4. Formatieren ist nur für die Anzeige“Format-Table und Format-List ändern das Aussehen der Ausgabe für den Bildschirm. Danach sind es keine normalen Objekte mehr.
Get-Service | Select-Object Name, Status -First 5 | Format-Table -AutoSizeGet-Service -Name Spooler | Format-List *# So nicht: Export-Csv bekommt FormatierungsobjekteGet-Service | Format-Table Name, Status | Export-Csv C:\Kurs\Ausgabe\falsch.csv
# So ja: erst Daten auswählen, dann exportierenGet-Service | Select-Object Name, Status | Export-Csv C:\Kurs\Ausgabe\richtig.csv5. Ausgabe weiterleiten
Abschnitt betitelt „5. Ausgabe weiterleiten“| Ziel | Cmdlet |
|---|---|
| Datei (Text) | Out-File, Set-Content |
| Bildschirm | Out-Host (Standard) |
| Datei (CSV) | Export-Csv (Tag 2) |
| JSON | ConvertTo-Json |
| Gar nichts | Out-Null |
Get-Process | Select-Object -First 3 | Out-File C:\Kurs\Ausgabe\prozesse.txt6. Debugging einer Pipeline
Abschnitt betitelt „6. Debugging einer Pipeline“Baue Pipelines schrittweise auf: Führe erst den ersten Befehl aus, prüfe die Ausgabe, hänge den nächsten Schritt an. Zwischendurch hilft Get-Member, um zu sehen, was gerade durchläuft.
Zusammenfassung
Abschnitt betitelt „Zusammenfassung“- Durch die Pipeline fließen Objekte.
Get-Memberzeigt Eigenschaften und Methoden.Select-Object,Sort-Object,Where-Objectsind die Grundwerkzeuge.Format-*kommt ans Ende und dient nur der Anzeige.