Назад | Перейти на главную страницу

Уведомление по электронной почте планировщика задач Windows?

Я использую планировщик задач Windows для запуска исполняемого файла, который возвращает 0 при успешном запуске. Однако я хотел бы получить уведомление по электронной почте, если (1) задача не запускается или (2) код возврата, если что-то иное, кроме 0.

Планировщик задач Windows на Windows Server 2003 может это сделать ???

В моем стремлении искоренить cmd.exe [ухмылка] вот сценарий Powershell, который также должен работать на вас:

# attempt to run your exe.  iex is an alias for the invoke-expression cmd
iex c:\path_to_exe\myprog.exe

# $? lets us know if the previous command was successful or not
# $LASTEXITCODE gives us the exit code of the last Win32 exe execution
if (!$? -OR $LASTEXITCODE -gt 0) 
{
    $smtpServer = "smtp.mydomain.com"
    $fromAddress = "sender@mydomain.com"
    $toAddress = "recipient@mydomain.com"
    $subject = "FAIL"
    $msgBody = "HEY, YOU GOT PROBLEMS"

    # This block is optional depending on your SMTP server config
    # You need it if your SMTP server requires authentication
    $senderCreds = new-object System.Net.networkCredential
    $senderCreds.UserName = "senderusername"
    $senderCreds.Password = "senderpwd"

    $smtpClient = new-object Net.Mail.SmtpClient($smtpServer)
    $smtpClient.Credentials = $senderCreds
    $smtpClient.Send($fromAddress,$toAddress,$subject,$msgBody)
}

Один очень простой трюк - обернуть команду в сценарий CMD / batch и использовать возвращенный уровень ошибки и Блат отправить электронное письмо условно.