So funktioniert PowerShell wirklich – mit Objekten & Pipeline
Wer PowerShell Objekte und Pipeline wirklich meistern will, muss verstehen, wie diese Konzepte zusammenspielen. In PowerShell ist alles ein Objekt – und mithilfe der Pipeline kannst du diese effizient weiterverarbeiten. Hier lernst du wie.
Jetzt wird’s technisch – aber keine Sorge: In diesem Beitrag lernst du Schritt für Schritt, wie PowerShell im Inneren funktioniert. Wir schauen uns die Objektverarbeitung, die Pipeline und die clevere Kombination von Cmdlets an – so, wie PowerShell eigentlich gedacht ist.
Denn: PowerShell ist keine normale Kommandozeile – sie ist objektbasiert. Und genau das macht sie so einzigartig und leistungsfähig.
Warum PowerShell keine Texte verarbeitet – sondern Objekte
In klassischen Shells bekommst du oft nur Text zurück – z. B. bei ipconfig
. In PowerShell erhältst du strukturierte Objekte, mit Eigenschaften und Methoden. Das ist ein riesiger Vorteil, denn damit kannst du gezielt auf Werte zugreifen, filtern und weiterverarbeiten.
Beispiel:
1Get-Process
zeigt nicht nur eine Texttabelle, sondern liefert eine Liste von Prozessobjekten mit Eigenschaften wie Name
, Id
, WorkingSet
, etc.
Du willst wissen, was du mit diesen Objekten machen kannst? Nutze dieses Cmdlet zur Analyse:
1Get-Process | Get-Member
(Der Alias dafür ist gm
)
Die Pipeline – das Herzstück von PowerShell
Mit dem Pipe-Zeichen |
leitest du die Ausgabe eines Cmdlets direkt an das nächste weiter. Und da es Objekte sind, bleibt die Struktur erhalten.
Ein Beispiel für einen einfachen Datenfluss:
1Get-Service | Where-Object Status -eq "Running" | Sort-Object DisplayName
Was passiert hier?
Get-Service
holt alle DiensteWhere-Object
filtert nur laufende (Running
) herausSort-Object
sortiert sie nach Namen
Objekt rein – Objekt raus. So einfach.
💡 Wer die PowerShell-Pipeline verstehen will, sollte mit solchen Beispielen experimentieren.
Was ist ein Cmdlet eigentlich?
Ein Cmdlet (sprich: „Command-Let“) ist der kleinste Befehl in PowerShell. Jedes Cmdlet folgt der Konvention Verb-Noun
, z. B.:
Get-Process
Set-Location
Remove-Item
Cmdlets sind modular, oft über PowerShell-Module bereitgestellt und lassen sich über Get-Command
oder Find-Command
finden.
Daten selektieren, filtern & ausgeben
Mit Cmdlets wie Select-Object
, Where-Object
und Sort-Object
kannst du Daten verarbeiten wie ein echter Datenjongleur:
1Get-ChildItem -Path C:\Windows -File | Where-Object Length -ge 10KB | Select-Object Name, Length | Sort-Object Length -Descending
Jeder Schritt liefert wieder ein Objekt – perfekt für weitere Verarbeitung oder Ausgabe.
Bonus: Ausgabe als CSV-Datei speichern
Du möchtest Ergebnisse weitergeben oder archivieren? Kein Problem:
1Get-Process | Select-Object Name, Id, @{Name='RAM_MB';Expression={ [math]::Round($_.WorkingSet/1MB,2) }} | ConvertTo-Csv -Delimiter ";" | Out-File "$env:TEMP\Prozesse.csv"
So exportierst du strukturierte Daten in eine Datei – ideal für Reporting, Audits oder Excel-Nutzer.
Fazit & Ausblick
Jetzt hast du das Herzstück von PowerShell verstanden:
- PowerShell verarbeitet Objekte statt Text
- Die Pipeline leitet Daten weiter – effizient und elegant
- Cmdlets lassen sich logisch kombinieren
Wenn du PowerShell Objekte und Pipeline souverän beherrschst, kannst du nahezu jede administrative oder automatisierte Aufgabe elegant lösen.
In einem der nächsten Beiträge zeige ich dir, wie du eigene Cmdlets und Funktionen schreibst oder die PowerShell zur SQL-Automatisierung nutzt.
Noch Fragen oder Interesse an individueller Beratung?
👉 Kontaktiere mich hier!