【发布时间】:2019-05-22 02:35:14
【问题描述】:
我有一些 powershell 脚本,当它们内部出现故障时,我试图将它们触发为 Windows 任务调度程序中的故障状态。所以我在powershell脚本中做这样的事情。我尝试了退出代码 1 或 99,它看起来不像 Windows 任务调度程序将其视为失败状态。所以我的失败代码电子邮件不会被发送出去通知我。
如何让任务调度程序查看我的 powershell 脚本失败了?它始终具有事件代码 129(已创建任务流程)、100(任务已启动)、200(操作已启动)、110(任务已触发)、201(操作已完成)、102(任务已完成)。
$global:ErrorStrings = New-Object System.Collections.Generic.List[System.Object] #I add strings onto the list as I find errors
$errorCodeAsString = ""
foreach ($item in $global:ErrorStrings.Members){
$errorCodeAsString += (" " + $item + "..")
}
if($errorCodeAsString -ne "")
{
write-output "Error: $errorCodeAsString"
Exit 99 #Exit 1 didn't cause task scheduler to see error at exit either
}
Exit 0
我知道我的列表中充满了错误,因为我创建它们是为了测试它。我检查了作为字符串的 errorCode 是一个长度并点击了退出 99 或 1。任务调度程序仍然显示正常的事件代码。
我有一个关于计划失败的电子邮件警报,由于事件代码没有显示失败,它永远不会触发发送我的电子邮件。这是 Windows 10,以防万一。
我一直在查看powershell errors sql、task scheduler success error、tips tricks scheduled tasks、powershell exit code,但没有帮助。
powershell 脚本在任务调度器中设置如下:
动作:启动程序
程序/脚本: PowerShell
添加参数: -ExecutionPolicy Bypass -File C:\Users\me\Documents\powershell\disasterBackup.ps1
【问题讨论】:
标签: windows powershell exit-code taskscheduler