从应用程序日志中提取 "faulting process id"

Extracting "faulting process id" from Application log

我找不到使用 Powershell 或 WMI 从应用程序日志中提取 "faulting process ID" 的方法。以下 returns 错误,但对于一些进一步的代码,我需要实际的 PID,而不是应用程序名称。这能做到吗?

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

这应该让您开始使用 RegEx(命名捕获组)

$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
  }
}

我会把它放到 table / noteproperty 中,对我来说今天太晚了。