一位经理要求我记录用户启动特定程序(星际争霸 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>