Powershell unterste Linie ausgeben?

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
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren