我正在尝试编写一个自定义Windows事件日志过滤器,以过滤EventID == 1234
且具有EventData/Data
元素的find_this_string
元素的事件。
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<EventID Qualifiers="16384">1234</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>15</Task>
<Opcode>0</Opcode>
<Keywords>0x0000000000000000</Keywords>
<TimeCreated SystemTime="2019-04-23T12:36:26.514122100Z" />
<EventRecordID>6352806</EventRecordID>
<Correlation />
<Execution ProcessID="524" ThreadID="1072" />
<Channel>Directory Service</Channel>
<Computer>test_machine</Computer>
<Security UserID="S-0-0-0" />
</System>
<EventData>
<Data>123455666</Data>
<Data>find_this_string</Data>
<Data>1</Data>
<Data>1</Data>
<Data>abcdeg</Data>
<Data>base</Data>
<Data>options</Data>
<Data />
<Data />
<Data>2</Data>
<Data>0</Data>
<Data>0</Data>
<Data>0</Data>
<Data>0</Data>
<Data>0</Data>
<Data>none</Data>
</EventData>
</Event>
我尝试了很多类似于以下内容的变体:
<QueryList>
<Query Id="0" Path="ABCD">
<Select Path="ABCD">
*[System[(EventID=1234)]] and *[EventData[(Data[2]='find_this_string')]]
</Select>
</Query>
</QueryList>
<QueryList>
<Query Id="0" Path="ABCD">
<Select Path="ABCD">
*[System[(EventID=1234)]] and *[EventData/Data[2]='find_this_string']
</Select>
</Query>
</QueryList>
我正在努力弄清楚在相同元素中有多个元素时如何过滤。我也无法通过Powershell脚本和发布过程来传送这些文件,我正在寻找纯XPath过滤器。