Process

如何使用 XML 過濾安全日誌以獲取以下數據

  • October 26, 2010

一位經理要求我記錄使用者啟動特定程序(星際爭霸 II)時的開始和停止時間和日期。我已經在使用者的機器上啟用了日誌記錄,這樣它就會報告所有程序的創建和終止。(Windows 日誌 -> 安全)

我無法過濾日誌以“僅”顯示指定程序的程序創建和終止。

程序創建資訊如下。

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

NewProcessId 0xf18
NewProcessName C:\Program Files (x86)\StarCraft II\Support\SC2Switcher.exe
TokenElevationType %% 1936
程序 ID 0xc10

NewProcessId 0x1a0c
NewProcessName C:\Program Files (x86)\StarCraft II\Versions\Base16605\SC2.exe
TokenElevationType %% 1936
程序 ID 0xf18

Process Termination 使用相同的 ProcessId 資訊。

什麼 XML 查詢將“僅”產生有問題的日誌?

這一切都在 Windows 7 環境中。

如果您不反對使用 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

Microsoft xpath 表達式似乎不支持對具有屬性的值進行過濾。在 XML 的深處,容器化看起來像這樣:

[事件編號]
[Data Name="NewProcessName"]"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>

引用自:https://serverfault.com/questions/194999