Я пытаюсь написать запрос, который извлечет идентификатор процесса (PID) из журнала событий Windows.
Я имею дело с идентификатором события Windows: 1309
Я написал несколько сценариев, которые приближают меня, но ни один не возвращает меня домой. Этот подошел ближе всего:
Get-EventLog -LogName Application -Source 'ASP.NET 4.0.30319.0' -EntryType Warning -Newest 1 |
where eventid -eq 1309 |
Select message |
Format-List |
Out-File c:\temp\elogdata.txt
Select-String c:\temp\elogdata.txt -Pattern "process id:" -SimpleMatch
Это вывод, который я получаю:
C:\temp\elogdata.txt:20: Process ID: 7332
Мне нужно передать это «7332» из «идентификатора процесса:» в другую команду, такую как TaskKill или ProcDump.
Как ни странно, когда я пытаюсь запустить Select-String
на выходе в памяти, я ничего не получаю:
Get-EventLog -LogName Application -Source 'ASP.NET 4.0.30319.0' -EntryType Warning -Newest 1 |
where eventid -eq 1309 |
Select message |
Format-List |
Select-String -InputObject {$_} -Pattern "process id:"
Я также попробовал несколько Get-WinEvent
скриптов ...
Get-WinEvent -FilterHashtable @{LogName='application';ID='1309'} -MaxEvents 1 |
Format-List |
select message