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

Posted

技术标签:

【中文标题】当特定计划任务无法运行时如何发送电子邮件【英文标题】:How to send email when SPECIFIC scheduled task fails to run 【发布时间】:2017-03-16 03:20:36 【问题描述】:

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于当特定计划任务无法运行时如何发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

任务计划程序无法正确执行批处理文件

Powershell 脚本不通过计划任务运行

您如何处理在 IIS 上运行的网站的计划任务?

当任务计划程序设置为“无论用户是不是登录都运行”时,VBA 失败

SQL 维护计划在未配置邮件时发送邮件

芹菜:在特定时间间隔后执行任务