如何使用 XML 過濾安全日誌以獲取以下數據
一位經理要求我記錄使用者啟動特定程序(星際爭霸 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>