2016-11-28 67 views
1

我找不到使用Powershell或WMI從應用程序日誌中提取「錯誤進程ID」的方法。以下內容返回錯誤,但對於一些進一步的代碼,我需要實際的PID,而不是應用程序名稱。這可以做到嗎?從應用程序日誌中提取「錯誤進程ID」

Get-EventLog application 1000 -entrytype error -newest 5 | Select-Object timegenerated,message,@{name='Executable';expression={$_.ReplacementStrings[0]}} 
+1

PID只記錄在消息中,因此您需要獲取Message屬性並使用類似regex的內容來捕獲「進程ID:* \ rn」 –

回答

1

這應該給你用正則表達式(命名捕獲組)開始

$log = Get-EventLog application 1000 -entrytype error -newest 5 | 
    Select-Object timegenerated,message,@{name='Executable';expression={$_.ReplacementStrings[0]}} 
$log | %{ 
    if ($_.message -match '(?smi)Faulting process id: (?<PID>0x[0-9a-f]+)'){ 
    $_.Executable,$matches.PID 
    } 
} 

我想它放入一個表/ noteproperty,對我來說這是今天遲到了。