Cómo hacer que TaskScheduler falle cuando la tarea devuelve un resultado diferente de 0

16

Tengo una tarea de respaldo que falla con un resultado distinto de cero, pero el Programador de tareas dice que ejecutó la tarea correctamente.

¿Hay alguna forma de decirle al Programador de tareas que la tarea falló?

Pablo Montilla
fuente
Hola Pablo, necesitaremos más información. ¿Cómo / qué inicia el programador de tareas? ¿Un archivo por lotes, un EXE, algo más? ¿Es esta copia de seguridad de Windows con la que está tratando? Que has intentado
Ƭᴇcʜιᴇ007
1
Estoy usando el programa wbadmin para iniciar la copia de seguridad, pero tengo el mismo problema con un archivo por lotes con una sola declaración de 'salida 1'. TaskScheduler incluye el código de error, pero informa que la tarea se ejecutó correctamente.
Pablo Montilla
Entonces, ¿el Programador de tareas muestra el código de salida distinto de cero?
Ƭᴇcʜιᴇ007
3
Sí, pero informa que la tarea se ejecutó con éxito. Entiendo que tal vez está informando que podría ejecutar la tarea, no que la tarea en sí fallara, pero no parece muy útil.
Pablo Montilla
Ver también stackoverflow.com/questions/16969500/…
MiFreidgeim SO-deja de ser malvado el

Respuestas:

4

Si el Programador de tareas inicia con éxito la tarea y el programa iniciado se cierra, entonces desde el punto de vista del Programador de tareas fue un éxito (es decir, no sucedió nada malo como una credencial de usuario fallida al iniciar el programa).

Normalmente, si desea monitorear algo malo que sucedió durante la ejecución de un programa, puede hacer que el programa envíe una alerta de algún tipo (por ejemplo, por correo electrónico o iniciando sesión en un archivo que luego revise), o bien configure otro programa para supervisar algo sobre la ejecución del programa que podría indicar si se produjo un error.

¿Qué tipo de notificación de un error estás tratando de recibir? ¿Está haciendo una revisión manual pero solo tratando de que el error sea más notable? ¿O tiene otro programa de monitoreo de errores?

Shannon Wagner
fuente
2
Aún así, creo que está mal fallar y no informar (o al menos dar una opción para informar) el error de la tarea ejecutada. ¡Gracias!
Pablo Montilla
1
Estoy de acuerdo en que sería útil si el Programador de tareas pudiera detectar el código de salida y enviar un correo electrónico en función del resultado. Pero no creo que tenga esa característica. ¿Estás tratando de recibir una alerta por correo electrónico? ¿Tal vez envolver el lanzamiento de wbadmin en un script VBScript o PowerShell que detecte el código de salida y haga algo con él sería una posibilidad para usted?
Shannon Wagner
1
Sí, esa es una posibilidad. También es trabajo ...;) Esperemos que MS piense que esto es algo útil para agregar a Windows 8.
Pablo Montilla
66
Esto es alucinante para mí: el planificador de tareas tiene todas esas opciones para configurar el reinicio de una acción en caso de que 'falle', pero ni siquiera verifica si una acción devuelve un código de error. Me hace preguntarme qué demonios en realidad constituye un 'fracaso' para el Programador de tareas.
mackenir
A la luz de esta respuesta, tengo que preguntar: ¿el Programador de tareas incluso desencadena un reintento basado en el código de salida?
jpmc26
5

Es posible "reiniciar" la tarea si falla.

  1. Use el siguiente código en el script por lotes para crear un evento de error del sistema:

    eventcreate / ID 100 / SO "Su nombre de script" / L APLICACIÓN / T ERROR / D "Su razón de falla"

  2. Cree una nueva tarea con un activador que supervise los eventos del sistema y filtre la categoría y la ID que acaba de agregar en el lote. La acción de esta tarea es el lote nuevamente. ¡Esta tarea debe retrasarse un minuto para que el mismo lote no se inicie dos veces!

Tenga cuidado de no crear un bucle infinito.

¡Espero que ayude!

schulle877
fuente
Me gusta este enfoque :)
DavidPostill