基本上我已在Windows任务计划程序中安排了一项任务。
在我安排了PowerShell脚本的任务中
在程序/脚本路径中,我们给出了powershell路径,并在我们给出的参数路径中
-command "& C:\Users\xxxx\Desktop\1.PS1"
我正在检查任务是否在powershell脚本失败时失败。
所以powershell脚本失败但最后一次运行状态显示
"The operation completed successfully"
如果配置我的任务,如果powershell脚本无法成功运行,它将返回失败?
修改
我有3个任务(所有3个是包含参数的PowerShell脚本) 基本上我已经为任务2和任务3创建了自定义触发器
即如果task1成功,那么任务2将被触发,如果任务2成功,则将触发task3。
在测试上述场景时,即使任务2中使用的powershell脚本返回错误(在代码中故意完成错误以检查场景),上次运行状态表示操作已成功完成且任务3任务被触发
答案 0 :(得分:0)
为什么没有3个计划任务,而不是当前的情况。 第一个脚本运行第一个脚本,如果脚本本身认为自己成功,则运行第二个计划任务本身? 例如,使用Start-ScheduledTask(https://technet.microsoft.com/en-us/library/jj649818(v=wps.630).aspx)。
这样,您的每个脚本都可以检查自己是否有问题,如果没有找到,可以调用下一个任务。这还有额外的好处,让您可以完全控制运行哪个计划任务,以及何时运行。
答案 1 :(得分:0)
基于评论in this thread和我自己的测试,听起来似乎不可能让计划任务记录为脚本失败而失败,因为任务的目的是它开始成功的程序。
但是,可以将退出代码返回到计划任务。退出代码将记录在事件历史记录中(信息级别)。如上所述in this thread,必须在计划任务调用脚本的参数中引用返回码:
-ExecutionPolicy Bypass –NoProfile –Command "& {C:\ProgramData\ORGNAME\scripts\SetDNS.ps1; exit $LastExitCode}"