用于事件筛选的Xpath查询
我有当前的筛选逻辑来定义我想要来源的事件用于事件筛选的Xpath查询,xpath,event-log,Xpath,Event Log,我有当前的筛选逻辑来定义我想要来源的事件 <QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[(EventID=4624 or EventID=4625)]] and *[EventData[Data[@Name='TargetUserName'] != 'ANONYMOUS LOGON']] and
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=4624 or EventID=4625)]]
and
*[EventData[Data[@Name='TargetUserName'] != 'ANONYMOUS LOGON']]
and
*[substring([EventData[Data[@Name='TargetUserName']]],2,1) != '-']
</Select>
</Query>
</QueryList>
*[系统[(EventID=4624或EventID=4625)]]
和
*[EventData[Data[@Name='TargetUserName']!='ANONYMOUS LOGON']]
和
*[子字符串([EventData[Data[@Name='TargetUserName']],2,1)!='-']
但是“*[substring([EventData[Data[@Name='TargetUserName']],2,1)!='-']部分由于未被解析而导致错误
我想放弃某些以“L-”和“D-”以及“C:/”开头的目标用户名
请建议适当的解决方案根据您编写第三个XPath表达式的方式,我猜您的结构如下:
...
<Any-Element>
<EventData>L-username
<Data Name='TargetUserName'>xxx</Data>
</EventData>
</Any-Element>
...
但我怀疑情况并非如此,因为您的第二个表达式比较了
元素的内容(而不是
的内容,而且您没有提到它失败了。因此,上面的xxx
字符串可能就是您的用户名所在的位置。如果是这种情况,您应该比较数据的内容,而不是事件数据
:
*[EventData[substring(Data[@Name='TargetUserName'], 2, 1) = '-']]
我发现,如果将查询更改为拉取应用程序或系统日志,则不会出现相同的错误。安全日志似乎存在缺陷。另一篇帖子建议将字符长度减少到150以下似乎可以解决此问题
不确定这是否解决了您的问题,因为您可能需要超过150个字符。如果您提供一个正在解析的XML示例以及xpath的预期结果,我可以提供帮助。再次获取错误。错误-上次重试时间:26-05-2014 12:18:55。代码(0x138C):
*[EventData[substring(Data[@Name='TargetUserName'], 2, 1) = '-']]