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