Filter ID's van de laatste "opstartgebeurtenis" uit het gebeurtenislogboek in PowerShell

Ik moet ID's van de laatste "opstartgebeurtenis" uit het gebeurtenislogbestand filteren

Ik snap het door psloglist -accepteula -n 1 -s -o "Microsoft-Windows-Kernel-General" -i 12 -t; uit te voeren naar een bestand en alleen de eerste te filteren stuk nummer gevolgd door; op de tweede regel zoals in het onderstaande voorbeeld

Systeemlog aan \ FDU000084151005:
   107.604 , System, Microsoft-Windows-kernel-generaal; INFORMATIE; FDU000084151005

kan je me alsjeblieft helpen me te schrijven in powershell?

2

2 antwoord

Voorbeeld van hoe u het kunt krijgen met Get-WinEvent :

get-winevent -FilterHashtable @{ProviderName = "Microsoft-Windows-Kernel-General" ; Id = 12} |
select -expand RecordId
1
toegevoegd
Bedankt, ik moet alleen de laatste filteren, maar het combineren met hulp van Shay Levy hieronder heb ik het kunnen begrijpen, dankzij jullie beiden :-)
toegevoegd de auteur ejw, de bron
yay get-winevent-FilterHashtable @ {ProviderName = "Microsoft-Windows-Kernel-General"; Id = 12} | selecteer -expand RecordId | select-object - eerste 1
toegevoegd de auteur ejw, de bron

U kunt waarschijnlijk de waarden ophalen met de cmdlet Get-WinEvent , raadpleeg de help-voorbeelden. Ik heb dat logbestand niet op mijn systeem, dus ik kan u geen werkend voorbeeld geven.

Hier volgt een manier om de waarden uit het geëxporteerde bestand te extraheren met behulp van de overeenkomstoperator en de verzameling $ matches:

Get-Content log.txt | Where-Object {$_ -match '^(\d+);'} | Foreach-Object { $matches[1] }
0
toegevoegd
Bedankt Shay, dit is precies wat ik nodig had :-)
toegevoegd de auteur ejw, de bron