Powershell-Ausgaben in Variablen speichern

23. Juli 2015

Normalerweise gehen die Systembetreuer wie folgt vor, wenn die Ausgabe eines Cmdlets in eine Variable gespeichert werden soll:

$Ausgabe = <cmdlet>

Für simple Fälle ist diese durchaus ausreichend, aber wie speichern die Administratoren des Ergebnis einer Cmdlet-Verkettung in die Variable ($Ausgabe) ab? Etwa wenn das Cmdlet „Get-Eventlog“ mit „Sort-Object“ kombiniert werden soll. Beispielsweise um die letzten zehn Einträge aus der Ereignisanzeige in Erfahrung zu bringen. Solch eine Verkettung über die Pipeline-Funktion würde wie folgt aussehen:

$Ausgabe = Get-EventLog system -newest 10 | Sort-Object time

Hier ist zu beachten, dass immer die Werte des letzten Cmdlets in der Pipeline an die Variable übergeben werden. Alternativ können die Systembetreuer auch auf den Parameter „-outvariable“ zurückgreifen. Das würde unser Beispiel-Skript wie folgt abwandeln:

Get-EventLog system -newest 10 | Sort-Object eventid –outvariable Ausgabe

Dabei ist zu beachten, das für die Variable ($Augabe) in diesem Fall kein Dollarzeichen vorangestellt werden darf, da sie über einen Parameter aufgerufen wird.

Florian Huttenloher

Lesen Sie auch