使用任务计划程序中的事件过滤器查找特定关键字

使用任务计划程序中的事件过滤器查找特定关键字

我希望您能帮上忙,有时备份任务会失败,通常是暂时的 VSS 错误,重新运行备份通常会成功完成。我试图做的是使用 Task Schdeuler 中的事件过滤器来触发备份重新启动。我只需定位 EventID (5635) 就可以做到这一点,没有任何问题,但我正在运行许多备份作业,所以我需要更具体,这就是我遇到的难题。

XML 事件数据如下所示:

<EventData>
<Data>
Backup job Server Backup 1 completed with warnings. Major Warning: One or more Hyper-V guests have reported errors that could result in an incomplete backup. Check each guest's event log and review any errors reported. Major Warning: Volume Shadow Copy Error 0x800423f4 - writer error: non retryable Destination: Local hard drive Bytes: 7191744309979 Start time: 01/01/2021 22:00:02 End time: 01/01/2021 22:12:25 Duration: 00:12:23.0745879 Job Execution ID: 1.679
</Data> 
</EventData>

我正在尝试让事件过滤器获取“服务器备份 1”文本,并使用以下查询:

<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[Provider[@Name='BackupAssist'] and (Level=3) and (EventID=5635) and *[EventData[Data[1]='Server Backup 1']]]]</Select>
</Query>
</QueryList>

但是,当事件被记录时,这不会触发。我怀疑这是一个通配符字符串问题,但我不确定。

任何帮助都非常感谢 Rob

答案1

这还没有实现,文档向您展示了限制并列出了您可以使用的三个功能:

[...] 节点测试:仅支持节点名称和 NCName 测试。支持选择任意字符的“*”字符。[...]

支持 position 函数及其简写数组引用(仅在叶节点上)。
支持 Band 函数。该函数对两个整数参数执行按位与运算。如果按位与运算的结果非零,则该函数的计算结果为真;否则,该函数的计算结果为假。
支持 timediff 函数。[...]

您可以创建一个带有事件 ID 触发器的计划任务来启动补救脚本,您可以在其中执行额外的验证来确定脚本是否应该继续执行。

相关内容