Я использую планировщик задач 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 и использовать возвращенный уровень ошибки и Блат отправить электронное письмо условно.