如何在特定的计划任务无法运行时发送电子邮件

问题描述:

我的Windows 2008上的任务计划程序每天都执行一个exe文件。如果该脚本无法启动,或脚本在执行过程中失败,想要收到电子邮件通知。 有许多基于事件日志条目获取Task Schedular发送电子邮件的例子。但是,如果我的特定计划任务失败,我只希望收到通知,而不是通过EventID 203/103/201通知所有失败的任务。我怎样才能做到这一点,没有任何定制软件?如何在特定的计划任务无法运行时发送电子邮件

创建一个运行此PowerShell脚本的新任务。

$ScheduledTaskName = "Taskname" 
$Result = (schtasks /query /FO LIST /V /TN $ScheduledTaskName | findstr "Result") 
$Result = $Result.substring(12) 
$Code = $Result.trim() 

If ($Code -gt 0) { 
    $User = "[email protected]" 
    $Pass = ConvertTo-SecureString -String "myPassword" -AsPlainText -Force 
    $Cred = New-Object System.Management.Automation.PSCredential $User, $Pass 


$From = "Alert Scheduled Task <[email protected]>" 
$To = "Admin <[email protected]>" 
$Subject = "Scheduled task 'Taskname' failed on SRV-001" 
$Body = "Error code: $Code" 
$SMTPServer = "smtp.company.com" 
$SMTPPort = "25" 

Send-MailMessage -From $From -to $To -Subject $Subject ` 
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl ` 
-Credential $Cred 
}