Como fazer com que o TaskScheduler falhe quando a tarefa retorna um resultado diferente de 0


16

Eu tenho uma tarefa de backup que falha com um resultado diferente de zero, mas o Agendador de tarefas diz que executou a tarefa corretamente.

Existe alguma maneira de informar ao Agendador de Tarefas que a tarefa falhou?


Olá Pablo, precisamos de mais informações. Como como / o que o agendador de tarefas está iniciando? Um arquivo em lote, um EXE, algo mais? É com esse backup do Windows que você está lidando? O que você tentou?
Sepcʜιᴇ007

1
Estou usando o programa wbadmin para iniciar o backup, mas tenho o mesmo problema com um arquivo em lotes com uma única instrução 'exit 1'. O TaskScheduler inclui o código de erro, mas relata a tarefa como executada com êxito.
Pablo Montilla

Portanto, o próprio Agendador de tarefas mostra o código de saída diferente de zero?
Sepcʜιᴇ007

3
Sim, mas relata a tarefa como executada com êxito. Acho que talvez esteja relatando que poderia executar a tarefa, não que a tarefa tenha falhado, mas não parece muito útil.
Pablo Montilla

Respostas:


4

Se o Agendador de tarefas iniciar com êxito a tarefa e o programa iniciado sair, do ponto de vista do Agendador de tarefas foi um sucesso (ou seja, nada de ruim aconteceu como uma falha na credencial do usuário ao iniciar o programa).

Normalmente, se você deseja monitorar algo ruim que aconteceu durante a execução de um programa, o programa envia um alerta de algum tipo (por exemplo, via email ou registrando-se em um arquivo que você revisa posteriormente) ou então configura outro programa para monitorar algo sobre a execução do programa que possa indicar se ocorreu um erro.

Que tipo de notificação de erro você está tentando receber? Você está fazendo uma revisão manual, mas apenas tentando fazer com que o erro seja mais perceptível? Ou você tem outro programa para monitorar erros?


2
Ainda acho que é errado falhar e não relatar (ou pelo menos dar uma opção para relatar) a falha da tarefa executada. Obrigado!
Pablo Montilla

1
Concordo que seria útil se o Agendador de tarefas pudesse detectar o código de saída e enviar um email com base no resultado. Mas não acredito que tenha esse recurso. Você está tentando receber um alerta por email? Talvez envolver o lançamento do wbadmin em um script VBScript ou PowerShell que detecta o código de saída e faça algo com ele seja uma possibilidade para você?
Shannon Wagner

1
Sim, isso é uma possibilidade. É também trabalhar ...;) Espero que MS vai acho que isso é algo útil para adicionar ao Windows 8.
Pablo Montilla

6
Isso é alucinante para mim - o agendador de tarefas tem todas essas opções para configurar a reinicialização de uma ação no caso de 'falha', mas nem verifica se uma ação retorna um código de erro. Me faz pensar no que realmente constitui uma 'falha' para o Agendador de tarefas.
mackenir

À luz desta resposta, devo perguntar: o Agendador de Tarefas aciona uma nova tentativa com base no código de saída?
precisa saber é

5

É possível "reiniciar" a tarefa se ela falhar.

  1. Use o seguinte código no script em lote para criar um evento de erro do sistema:

    eventcreate / ID 100 / SO "Nome do seu script" / L APPLICATION / T ERROR / D "Seu motivo de falha"

  2. Crie uma nova tarefa com um gatilho que monitore os eventos do sistema e filtre a categoria e o ID que você acabou de adicionar no lote. A ação desta tarefa é o lote novamente. Esta tarefa deve ser atrasada em um minuto, para que o mesmo lote não seja iniciado duas vezes!

Cuidado para não criar um loop infinito.

Espero que ajude!


Eu gosto dessa abordagem :)
DavidPostill
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.