在任务计划程序操作中访问事件查看器值查询的结果

时间:2018-11-22 03:37:47

标签: xml windows task scheduler

我正在尝试在Windows 10中实现计划任务。该任务由多个事件触发,我想将触发任务的事件ID传递给操作。

所以我有以下值查询:

      <ValueQueries>
         <Value name="eventID">Event/System/EventID</Value>
      </ValueQueries>

还有ExecAction中的参数:

<Arguments>--event $(eventID)</Arguments>

但是当任务被触发时,我得到一个错误代码:2147942409

将其转换为十六进制是0x80070009。

Windows错误? “存储控制块地址无效”?

我不明白它要告诉我什么?

在命令行中没有$ {eventID)的情况下任务执行正常(只是没有任何用处)。

1 个答案:

答案 0 :(得分:0)

我终于找到了答案-出差了一段时间,没有从事这个项目。

该脚本实际上要求任务计划程序在两个事件上触发,并且对于触发器集合中的每个事件ID都有单独的触发器定义。这样可行。不起作用的是对每个定义中的值查询使用相同的name属性。这就是产生错误的原因-尽管它是有效的XML,但实际上我两次声明了相同的变量,因此调度程序决定通过抛出无意义的错误来惩罚我。

解决方案是将两个触发器定义合并为一个,这意味着仅定义了一个值查询:

    <EventTrigger>
  <Enabled>true</Enabled>
  <Subscription>&lt;QueryList&gt;&lt;Query Id="0"&gt;&lt;Select Path="Microsoft-Windows-NetworkProfile/Operational"&gt;*[System[(EventID=10000) or (EventID=10001)]]&lt;/Select&gt;&lt;/Query&gt;&lt;/QueryList&gt;</Subscription>
  <ValueQueries>
    <Value name="eventID">Event/System/EventID</Value>
  </ValueQueries>
</EventTrigger>

现在很高兴,原型已经交付给客户!