为何Windows 10事件查看器中的该XPath查询无法生效?
Windows 10事件查看器XPath查询修复方案
原查询的问题
你的XQuery语句不被接受,核心问题是不符合事件查看器的XPath语法规范:
- 事件日志XML的根节点是
<Event>,直接用/*匹配会触发语法识别错误 text()的用法无法正确定位日志中的具体内容字段,事件日志的关键内容都嵌套在<EventData>、<Message>这类子节点里
正确的查询写法
根据不同搜索需求,提供两种常用的正确写法:
1. 匹配事件数据中包含"Admin"的安全日志
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security">*[EventData[Data[contains(., 'Admin')]]]</Select> </Query> </QueryList>
2. 匹配事件描述(Message字段)中包含"Admin"的安全日志
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security">*[contains(Event/System/Message, 'Admin')]</Select> </Query> </QueryList>
补充提示
- 事件查看器用的是简化版XPath,不支持部分标准XPath语法,比如不能直接用
text(),需用.指代当前节点的文本内容 - 如果要结合事件ID筛选(比如只看登录成功的4624事件),可以用下面的写法:
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security">*[System/EventID=4624 and EventData[Data[contains(., 'Admin')]]]</Select> </Query> </QueryList>
内容的提问来源于stack exchange,提问作者leeand00
相关产品推荐
相关产品推荐

