Powershell unterste Linie ausgeben?
Ich möchte in PS den letzten Eintrag von get-hotfix ausgeben. Wie geht das?
1 Antwort
Um etwas aus einer Fülle von Objekten auszuwählen gibt es das Cmdlet Select-Object (alias select)
In Powershell ist so ziemlich alles ein Object, so auch die Elemente einer Aufzählung. Wenn du das letzte Objekt einer List haben willst , "sagst" Du select einfach, mit dem Parameter -last worum es Dir geht (Letze) und wieviel davon (1).
Get-Hotfix|Select-Object -last 1
Allerdings solltest Du Dir mal die Ausgabe von Get-Hotfix genauer anschauen, die Reihenfolge der Liste ist recht willkürlich und select -last 1 greift sich einfach das letzte, welches in der Liste steht, was überhaupt nichts mit der KB-Nummer (HotFixID) oder dem Instalatinsdatum (InstalledOn) zu tun hat.
Deshalb solltest du nicht versäumen zu sortieren und ggf, zu Filtern (Security Update? , Update?)
#sortieren nach Installdatum
Get-Hotfix|Sort-Object -Property InstalledOn
#sortieren nach KB...
Get-Hotfix|Sort-Object -Property HotFixID
#filtern nach Security Update
Get-Hotfix|Sort-Object -Property InstalledOn|Where-Object {$_.Description -like 'Security*'}|Sort-Object -Property InstalledOn
#filtern nach normalen Updates
Get-Hotfix|Sort-Object -Property InstalledOn|Where-Object {$_.Description -like 'Update'}|Sort-Object -Property HotFixID
...Und weil Powershell mit Pipelines arbeitet, kannst Du nach Gutdünken Filter oder Verarbeitungsschritte in Dein "Datenrohr" einbauen.
so auch das Anfangs behandelte Selektieren von Elementen:
Get-Hotfix|Sort-Object -Property InstalledOn|Where-Object {$_.Description -like 'Update'}|Sort-Object -Property HotFixID|Select-Object -last 1
Wenn Du es etwas übersichtlicher haben möchtest, kannst Du auch auf mehrere Zeilen verteilen .
Get-Hotfix|
Sort-Object -Property InstalledOn|
Where-Object {$_.Description -like 'Update'}|
Sort-Object -Property HotFixID|
Select-Object -last 1
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-hotfix
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-object
- https://docs.microsoft.com/de-de/powershell/scripting/samples/sorting-objects
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/where-object
- https://www.windowspro.de/script/vergleichsoperatoren-powershell-eq-lt-gt-contains-match