任务计划程序 - 自定义事件筛选器触发器未触发操作

时间:2015-08-25 14:26:25

标签: xml windows triggers server scheduled-tasks

我们的服务器在任务计划程序中有许多任务,这些任务在不同的计划上运行。只有当一个特定任务完成时,我才需要通过电子邮件通知我。看到成功完成的任务的相应事件ID是102,我能够创建一个事件,只要任何任务完成就会给我发电子邮件,确保我的电子邮件操作已正确配置。当我试图通过名为“电子邮件解析器”的任务触发此电子邮件时,我的问题就出现了,我相信我需要一个自定义触发器来实现这一点。

我做了什么:

在我的电子邮件事件的“触发器”标签中,我选择开始“在事件上”任务,选择“自定义”单选框,然后选择“编辑事件过滤器”。

我选择了“按来源”并从下拉列表中选择了“TaskScheduler”。如果文本框显示为“<All Event IDs>”,我将其更改为102.为简单起见,我暂时保留其他所有内容。

XML选项卡会自动填充以下内容:

<QueryList>
  <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Debug">
    <Select Path="Microsoft-Windows-TaskScheduler/Debug">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=102)]]</Select>
    <Select Path="Microsoft-Windows-TaskScheduler/Diagnostic">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=102)]]</Select>
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=102)]]</Select>
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=102)]]</Select>
  </Query>
</QueryList>

当我单击“确定”并尝试确认这些更改时,我会弹出一个“错误消息:报告以下错误:不支持该请求。”

在研究有关自定义触发器的更多信息后,我发现http://www.thegreenbutton.tv/forums/viewtopic.php?f=22&t=4948是为自定义触发器创建正确XML的明确参考。

按照这些说明,我构建了以下内容:

<QueryList>
  <Query Id="0" Path="System">
    <Select Path="System">
*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=102)]] 
and 
*[EventData[Data[@Name='TaskName'] and (Data='Email Parser')]]
</Select>
  </Query>
</QueryList>

当我单击确定并输入我的密码进行确认时,任务计划程序似乎接受了触发器的这些参数,但事件永远不会触发!我可以手动告诉此事件运行没有问题。问题在于我的触发器,但我需要另一组眼睛来告诉我我缺少的东西。

我从电子邮件解析器任务的历史记录选项卡中引用的相关详细信息如下:

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-TaskScheduler" Guid="{de7b24ea-73c8-4a09-985d-5bdadcfa9017}" /> 
  <EventID>102</EventID> 
  <Version>0</Version> 
  <Level>4</Level> 
  <Task>102</Task> 
  <Keywords>0x8000000000000000</Keywords>  
  <Channel>Microsoft-Windows-TaskScheduler/Operational</Channel> 
  </System>
- <EventData Name="TaskSuccessEvent">
  <Data Name="TaskName">\Email Parser</Data>  
  </EventData>
  </Event>

提前感谢您的任何帮助!

1 个答案:

答案 0 :(得分:0)

这似乎是一篇旧文章,但是当我也尝试类似的解决方案时,我找到了解决方案。希望这对那些遇到此问题的人有用。

XML查询应包含\

*[EventData[Data[@Name='TaskName'] and (Data='\Email Parser')]]

在另一个网站(blog_link)上,还有另一种添加任务名称约束的方法,如下所示:

*[EventData[Data[1]='\Email Parser']]