如何在任务完成时更新运行结果?

时间:2015-07-31 14:05:12

标签: powershell scheduled-tasks

我正在尝试使用任务计划程序每分钟运行一次PowerShell脚本。该脚本基本上会触发HTTP GET请求,如果请求不成功,我希望任务显示“运行结果”为错误。

现在,无论我的脚本发生了什么,任务计划程序都会将最后一次“运行结果”显示为“成功”,我不确定我应该做些什么才能使其正常工作。在我的脚本中,如果请求未返回200 / OK,则使用Exit 1,否则返回Exit 0

我的任务操作设置如下:

  • 操作:启动程序
  • 程序/脚本:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
  • 添加参数:-NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "C:\MyScript.ps1; Exit $LASTEXITCODE"
  • 开始于:C:\

2 个答案:

答案 0 :(得分:1)

您正在正确运行所有内容,并正确设置了所有内容。

要回答您的问题,“任务计划程序库”视图,“上次运行结果”是正确的结果,以及正确的视图以查看是否成功运行。

“任务计划程序(本地)”视图的“任务状态”部分仅仅是告诉您 任务 是否运行。它不会返回任务操作的结果。因此,只有在某些事情导致它错过预定运行时(例如,继续使用电池电量),它才会显示错误,而不是任务操作失败。

我个人总是使用“任务计划程序库”视图,“上次运行结果”作为查看事情是否失败的唯一方法。

答案 1 :(得分:0)

您可以在cmd文件中使用EXIT%ERRORLEVEL%来"冒泡"从PowerShell到任务计划程序

中的上次运行结果列的任何非零返回码

如描述 http://www.technologytoolbox.com/blog/jjameson/archive/2011/11/19/tips-tricks-for-running-powershell-scripts-as-scheduled-tasks.aspx