Windows 7 Win7中的Windows任务计划程序如何识别失败的任务?

Windows 7 Win7中的Windows任务计划程序如何识别失败的任务?,windows-7,scheduled-tasks,Windows 7,Scheduled Tasks,我正在使用Windows 7,我有一个应用程序,成功时返回零(0x0),错误时返回一(0x1) 我已使用Windows任务计划程序计划此应用。我选中了选项框“如果任务失败,请每次重新启动”和“尝试重新启动到:” 我认为应用程序的非零返回代码足以触发任务在给定间隔后重新启动。但什么也没发生 有什么想法吗?可能是什么问题?我尝试用谷歌搜索它,但没有找到任何相关信息。我在Windows 2008 server Windows任务调度器上遇到过同样的问题。 该操作返回非零代码,但调度器认为任务完成< /

我正在使用Windows 7,我有一个应用程序,成功时返回零(0x0),错误时返回一(0x1)

我已使用Windows任务计划程序计划此应用。我选中了选项框“如果任务失败,请每次重新启动”和“尝试重新启动到:”

我认为应用程序的非零返回代码足以触发任务在给定间隔后重新启动。但什么也没发生


有什么想法吗?可能是什么问题?我尝试用谷歌搜索它,但没有找到任何相关信息。

我在Windows 2008 server Windows任务调度器上遇到过同样的问题。 <强>该操作返回非零代码,但调度器认为任务完成< /强>:

Task Scheduler successfully completed task "\SET Tasks\Scheduled task [Backup SET Server]" , instance "{...}" , action "C:\Windows\SYSTEM32\cmd.exe" with return code 1.
我在网上只找到了一个答案:

Windows任务计划程序没有 检查退出代码或任何其他 任务完成时的值。你 必须处理任何错误处理 在您自己的脚本或程序中

……在本文件中:

所以我现在认为解决这个问题的唯一方法可能是在事件上使用任务触发。我正在调查

问候,

奥利维尔。

你可以

  • 激活计划的历史记录(如果尚未激活)
  • 在历史记录“操作已完成”上,右键单击“此事件的附加任务…”
  • 按如下方式设置自定义筛选器:

    <QueryList>
      <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
        <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[EventID=201]] and *[EventData[Data[@Name='ResultCode']!='0']] and *[EventData[Data[@Name='TaskName']='\YOUR TASK NAME HERE']]</Select>
      </Query>
    </QueryList>
    
    *[System[(EventID=201)]和*[EventData[Data[@Name='ResultCode']='1']]

  • 享受

    提洛


    用于Win 2008 R2(Exchange作为电子邮件服务器)

    创建新任务并按如下方式设置自定义事件查询:

    <QueryList>
      <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
        <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[EventID=201]] and *[EventData[Data[@Name='ResultCode']!='0']] and *[EventData[Data[@Name='TaskName']='\YOUR TASK NAME HERE']]</Select>
      </Query>
    </QueryList>
    
    添加参数:


    这将安排原始任务在事件中记录非零结果代码15分钟后再次运行。

    但是没有人回答标题问题。任务计划程序似乎无法检测失败的任务?当然,它必须有一些东西,因为它可以选择重新启动失败的任务

    我没有设法使它在事件上与任务触发一起工作。我已向MS反馈中心提交了一个建议。你可以投票支持它(链接只在Win10上工作)嗨,Tilo,我也在努力解决同样的问题,我尝试了你的自定义过滤技术,但事件不断发生。我只需要每隔一段时间,而且只需要几次。你能详细介绍一下建议的解决方案吗。应该注意的是,此解决方案是一个额外的计划任务,配置为监视失败的执行(非零返回),因此在原始任务中运行的任何脚本都应该发送正确的返回代码。切记,您应该将延迟设置为至少一分钟,并且应该实现故障保护,以防止原始脚本永远重新运行。这仍然是一个很好的答案,谢谢。等等,这只是设置了一个自定义触发器,在非零出口代码上再次触发任务吗?
    /Run /TN "\YOUR TASK NAME HERE"