【发布时间】:2026-02-05 14:20:03
【问题描述】:
我有一个包含数千个事件的事件日志。我想制作一个显示其中一些的自定义过滤器或视图。我想在 XML 的整个文本(作为文本)或特定字段上使用正则表达式(甚至只是简单的文本匹配)来过滤它们。事件查看器确实支持 ctl+f 查找,但显然您不能将相同的查找操作放入自定义视图中,以便每次都可以使用它。
- 环境:Microsoft windows server 2012 标准
- 程序:事件查看器
我查看了创建自定义视图,并且正在编辑自定义视图属性的 XML 源以尝试过滤它们。
事件如下所示:
<Event xmlns="http://blahblah.com">
<EventData>
<Data>Blah smith blah
</Data>
</EventData>
</Event>
我想在数据字段上进行文本匹配/正则表达式。
我已经尝试了很多这样的事情:
<QueryList>
<Query Id="0" Path="">
<Select Path="">
*[EventData[Data=regex("*smith*")]]
</Select>
</Query>
</QueryList>
以及其他类似的行
*[EventData[Data="%smith%")]]
*[EventData[Data="%%smith%%")]]
但我没有得到任何结果或无效的 XPath 错误。
我该怎么做?我也有兴趣知道我在哪里的名字。这是完整的 XPath,还是有一些特定的 Microsoft 版本名称?我什至如何从*Event 行中获取存在的命名空间列表?对于解释我尝试编写 XPath 的任何内容,我如何才能访问编译/运行时错误?
我也接受连接到事件查看器 API 的程序形式的解决方案。如果它们易于使用并且可以与程序本身集成,那就更好了,但即使是事件日志过滤的 powershell 版本也会很有用。
总的来说,我只想根据内容的正则表达式(或只是简单的文本匹配)从事件日志中过滤掉一些事件。从理论上讲,这应该很容易做到 - ctl+f find 可以做到,事件存储在我的本地计算机上的某个地方,并且我有一个明显复杂的自定义视图过滤器设置。
【问题讨论】:
-
我认为事件查看器视图不允许通配符搜索。此外,Windows 事件日志支持 XPath 1.0 的子集。你去过msdn.microsoft.com/en-us/library/ms256086.aspx吗?
标签: xpath event-viewer