来自安全事件日志的XML查询filter的意外结果

伙计们,

我正在尝试为Windows事件日志查看器创build自定义XML / Xpath筛选器,以从安全日志的视图中排除无数“SYSTEM”login。 在Technet的XML过滤博客的帮助下,我已经设法达到了这个目标:

<QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[(EventID=4624)]] and *[EventData[Data[@Name='TargetUserSid'] and (Data!='S-1-5-18')]] </Select> </Query> </QueryList> 

但是,在所有的期望中,我仍然有这样的事件(当然还有其他事件):

 <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" /> <EventID>4624</EventID> <Version>0</Version> <Level>0</Level> <Task>12544</Task> <Opcode>0</Opcode> <Keywords>0x8020000000000000</Keywords> <TimeCreated SystemTime="2013-07-18T15:12:55.797049800Z" /> <EventRecordID>199135861</EventRecordID> <Correlation /> <Execution ProcessID="496" ThreadID="3028" /> <Channel>Security</Channel> <Computer>SBS.domain.local</Computer> <Security /> </System> <EventData> <Data Name="SubjectUserSid">S-1-0-0</Data> <Data Name="SubjectUserName">-</Data> <Data Name="SubjectDomainName">-</Data> <Data Name="SubjectLogonId">0x0</Data> <Data Name="TargetUserSid">S-1-5-18</Data> <Data Name="TargetUserName">SBS$</Data> <Data Name="TargetDomainName">DOMAIN</Data> <Data Name="TargetLogonId">0x684af79a</Data> <Data Name="LogonType">3</Data> <Data Name="LogonProcessName">Kerberos</Data> <Data Name="AuthenticationPackageName">Kerberos</Data> <Data Name="WorkstationName"> </Data> <Data Name="LogonGuid">{9D5E970C-928D-E3FD-8D96-09044670F33E}</Data> <Data Name="TransmittedServices">-</Data> <Data Name="LmPackageName">-</Data> <Data Name="KeyLength">0</Data> <Data Name="ProcessId">0x0</Data> <Data Name="ProcessName">-</Data> <Data Name="IpAddress">fe80::cc18:cb50:1710:c2a7</Data> <Data Name="IpPort">6413</Data> </EventData> </Event> 

我很难理解为什么具有S-1-5-18的TargetUserSid属性的事件已经包含在视图中,而不应该是这样。 它也在另一个方向工作 – 如果我将filter定义为*[EventData[Data[@Name='TargetUserSid'] and (Data='S-1-5-18')]] ,我会看到带有不同的TargetUserSid“滑过”。

从域对象中select不同的(长)SID似乎按预期工作,并给我一个只有相应地设置了TargetUserSid的事件的视图。

我也尝试过像其他属性,如TargetUserName,但只是遇到类似的问题。

任何提示如何解决我的查询或类似案件的工作示例非常感谢。

尝试这个:

 <QueryList> <Query Id="0" Path="Security"> <Select Path="Security">*[System[(EventID=4608)]]</Select> <Suppress Path="Security">*[EventData[Data[@Name="TargetUserSid"] = "S-1-5-18"]]</Suppress> </Query> </QueryList>