Notificação por email do agendador de tarefas do Windows?

3

Estou usando o Agendador de Tarefas do Windows para executar um executável que retorna 0 quando é executado com êxito. No entanto, eu gostaria de receber uma notificação por e-mail se (1) a tarefa não for executada ou (2) o código de retorno for diferente de 0.

Isso é algo que o Agendador de Tarefas do Windows no Windows Server 2003 pode fazer ???

    
por rafael 13.11.2009 / 15:46

2 respostas

5

Em minha missão para erradicar o cmd.exe [sorriso], aqui está um script do Powershell que também deve funcionar para você:

# 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 = "[email protected]"
    $toAddress = "[email protected]"
    $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)
}
    
por 13.11.2009 / 16:48
3

Um truque muito fácil seria colocar o comando em um script CMD / batch e usar o errorlevel retornado e Blat para enviar e-mail condicionalmente.

    
por 13.11.2009 / 15:56