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

时间:2016-11-02 17:36:26

标签: windows scheduled-tasks windows-server-2008 scheduler taskscheduler

我有一个每天由我的Windows 2008上的任务计划程序执行的exe文件。如果该脚本无法启动,或者如果脚本在执行期间失败,我希望收到电子邮件通知。 有许多示例可以让Task Schedular根据事件日志条目发送电子邮件。但是,我只希望在我的特定计划任务失败时收到通知,而不是通过EventID 203/103/201获取所有失败的任务的通知。如果没有任何自定义软件,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

创建一个运行此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 = "admin@company.com"
    $Pass = ConvertTo-SecureString -String "myPassword" -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential $User, $Pass


$From = "Alert Scheduled Task <task@servername>"
$To = "Admin <admin@company.com>"
$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
}