Фильтровать идентификаторы последнего события загрузки из журнала событий в PowerShell

Мне нужно отфильтровать идентификаторы последнего «загрузочного события» из журнала событий.

Я получаю это, запустив psloglist -accepteula -n 1 -s -o "Microsoft-Windows-Kernel-General" -i 12 -t ; что я перенаправляю в файл и мне нужно отфильтровать только первый кусок чисел, за которым следует ; во второй строке, как показано в примере ниже

Системный журнал \FDU000084151005:
107604;System;Microsoft-Windows-Kernel-General;INFORMATION;FDU000084151005

не могли бы вы, пожалуйста, помочь мне написать это в powershell?


person ejw    schedule 06.12.2011    source источник


Ответы (2)


Пример того, как вы можете получить это с помощью Get-WinEvent:

get-winevent -FilterHashtable @{ProviderName = "Microsoft-Windows-Kernel-General" ; Id = 12} |
select -expand RecordId
person manojlds    schedule 06.12.2011
comment
Спасибо, мне просто нужно отфильтровать последнее, но объединив его с помощью Шей Леви ниже, я смог его получить, благодаря вам обоим :-) - person ejw; 08.12.2011
comment
да get-winevent -FilterHashtable @{ProviderName = "Microsoft-Windows-Kernel-General" ; Id = 12} | select -expand RecordId | select-object -first 1 - person ejw; 09.12.2011

Вы, вероятно, можете получить значения с помощью командлета Get-WinEvent, проверьте примеры справки. У меня нет этого файла журнала в моей системе, поэтому я не могу привести вам рабочий пример.

Вот способ извлечь значения из экспортированного файла с помощью оператора match и коллекции $matches:

Get-Content log.txt | Where-Object {$_ -match '^(\d+);'} | Foreach-Object { $matches[1] }
person Shay Levy    schedule 06.12.2011
comment
Спасибо, Шей, это именно то, что мне было нужно :-) - person ejw; 08.12.2011