我正在尝试创建一个任务调度程序事件,该事件在我们的应用程序遇到异常时触发。但是,我只希望它查找特定的文本字符串。那么,有没有一种方法可以设计一个XML事件过滤器,该过滤器将使用通配符或包含来查找某些文本的一部分?我已经尝试过了,但是不起作用:
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">
*[EventData[Data and (Data='*non-base 64 character*')]]
</Select>
</Query>
</QueryList>
答案 0 :(得分:0)
很遗憾,基于this post,这似乎是不可能的。我花了一个小时的时间来寻找一种方法,尝试各种不同的事情,并且什么也没做,所以即使我似乎没有实际的解决方案可以在这里发布,因为这个问题比那个问题提早了很多。在我的搜索中(我在搜索中开始使用“ xpath”后就找到了它),因此希望它可以节省其他时间。
答案 1 :(得分:0)
这不是您真正想要的,但是我有一个类似的要求,可以通过过滤文本后面的实际XML来解决它。当您查看详细信息选项卡时,您可能会看到文本后面的“原始”数据(在XML视图中),该数据可以用来代替包含过滤器。
我想过滤一个带有文本的事件: “卷R:(\ Device \ HarddiskVolume42)正常。无需采取任何措施。” 所以我在寻找类似“ 卷R:”和“ 健康”的东西。 但是,当仔细查看XML视图时,我发现驱动器名称实际上存储在自己的数据中。所以我最后的过滤器是:
<QueryList>
<Query Id="0" Path="System">
<Select Path="System">
*[System[Provider[@Name='Microsoft-Windows-Ntfs']]]
and
*[System[(EventID='98')]]
and
*[EventData[Data[@Name='DriveName'] and (Data='R:')]]
and
*[EventData[Data[@Name='CorruptionActionState'] and (Data='0')]]
</Select>
</Query>
</QueryList>
要测试查询,您始终可以在事件查看器中创建自定义视图。