如何使用 XML 过滤安全日志中的以下数据

如何使用 XML 过滤安全日志中的以下数据

一位经理要求我记录用户启动特定程序(星际争霸 II)的开始和停止时间和日期。我已在用户的计算机上启用日志记录,以便记录所有进程的创建和终止。(Windows 日志 -> 安全)

我无法过滤日志以“仅”显示指定程序的进程创建和终止。

进程创建信息如下。

新进程ID 0xc10
  新进程名称 C:\Program Files (x86)\StarCraft II\StarCraft II.exe
  TokenElevationType %%1936
  进程 ID 0xa70

新进程 ID 0xf18
  新进程名称 C:\Program Files (x86)\StarCraft II\Support\SC2Switcher.exe
  TokenElevationType %%1936
  进程 ID 0xc10

新进程 ID 0x1a0c
  新进程名称 C:\Program Files (x86)\StarCraft II\Versions\Base16605\SC2.exe
  TokenElevationType %%1936
  进程 ID 0xf18

进程终止使用相同的ProcessId信息。

哪些 XML 查询将“仅”产生有问题的日志?

这一切都是在 Windows 7 环境中进行的。

答案1

如果你不反对使用 PowerShell,可以试试这个。它会在当前目录中放置一个可以在 Excel 中使用的 CSV 文件。

Get-EventLog Security -ComputerName RemotePC | ?{$_.Message -ilike '*StarCraft*'} | Export-Csv SecurityLog.csv

您还可以添加额外的条件,如下所示:

Get-EventLog Security -ComputerName RemotePC | ?{$_.Message -ilike '*StarCraft*' -or $_.Message -ilike '*Something Else*'} | Export-Csv SecurityLog.csv

答案2

Microsoft xpath 表达式似乎不支持使用属性对值进行过滤。在 XML 深处,容器化如下所示:

[事件ID]
   [Data Name="新进程名称"]"C:\Program Files (x86)\StarCraft II\StarCraft II.exe"[/Data]
[/事件ID]

问题是 Microsoft XPath 表达式无法指定该字段的值是否相等。它可以测试是否存在,但相等性超出了它的范围。

也许可以,我还没有找到。无论如何,这可能会有所帮助:

<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">*[EventData[Data[@Name="NewProcessName"]] and System[(EventID=4688)]]</Select>
</Query>
</QueryList>

相关内容