Wie kann TaskScheduler fehlschlagen, wenn die Aufgabe ein anderes Ergebnis als 0 zurückgibt?

7469
Pablo Montilla

Ich habe eine Sicherungsaufgabe, die mit einem Ergebnis ungleich Null fehlschlägt. Der Taskplaner sagt jedoch, dass er die Aufgabe korrekt ausgeführt hat.

Gibt es eine Möglichkeit, dem Taskplaner mitzuteilen, dass die Aufgabe fehlgeschlagen ist?

14
Hallo Pablo, wir brauchen mehr Informationen. Zum Beispiel wie / was startet der Taskplaner? Eine Batchdatei, eine EXE-Datei oder noch etwas? Ist das Windows-Backup, mit dem Sie sich befassen? Was hast du versucht? Ƭᴇcʜιᴇ007 vor 12 Jahren 0
Ich verwende das Programm wbadmin, um die Sicherung zu starten, aber ich habe das gleiche Problem mit einer Batchdatei mit einer einzelnen 'exit 1'-Anweisung. Der TaskScheduler enthält den Fehlercode, meldet den Task jedoch als erfolgreich ausgeführt. Pablo Montilla vor 12 Jahren 1
Der Taskplaner zeigt also den Exit-Code ungleich Null? Ƭᴇcʜιᴇ007 vor 12 Jahren 0
Ja, aber die Aufgabe wird als erfolgreich ausgeführt gemeldet. Ich schätze, dass es vielleicht berichtet, dass es die Aufgabe ausführen könnte, nicht, dass die Aufgabe selbst fehlgeschlagen ist, aber nicht sehr nützlich erscheint. Pablo Montilla vor 12 Jahren 3
Siehe auch http://stackoverflow.com/questions/16969500/how-do-i-notify-windows-task-scheduler-when-my-application-fails Michael Freidgeim vor 7 Jahren 0
Ich habe einen Vorschlag an MS Feedback Hub übermittelt [Windows Task Scheduler untersucht den Beendigungscode nicht] (http://aka.ms/a5p0w2). Sie können dafür stimmen (Link funktioniert nur unter Win10) Michael Freidgeim vor 7 Jahren 0

2 Antworten auf die Frage

3
Shannon Wagner

Wenn der Taskplaner die Task erfolgreich startet und das gestartete Programm beendet wird, war dies aus Sicht des Taskplaners ein Erfolg (dh es ist nichts Schlimmeres passiert als ein fehlgeschlagener Benutzerausweis, der das Programm startet).

Normalerweise, wenn Sie nach Fehlern suchen möchten, die während eines Programmlaufs aufgetreten sind, müssen Sie entweder das Programm eine Benachrichtigung senden (z. B. per E-Mail oder durch Protokollierung in einer Datei, die Sie später überprüfen) oder ein anderes Programm einrichten Überwachen Sie etwas über den Programmlauf, der auf einen Fehler hinweisen könnte.

Welche Art von Benachrichtigung über einen Fehler möchten Sie erhalten? Führen Sie eine manuelle Überprüfung durch, versuchen Sie jedoch, den Fehler auffälliger zu machen? Oder haben Sie ein anderes Programm zur Fehlerüberwachung?

Trotzdem halte ich es für falsch, einen Fehler der ausgeführten Aufgabe nicht zu melden (oder zumindest zu melden). Vielen Dank! Pablo Montilla vor 12 Jahren 2
Ich stimme zu, dass es nützlich wäre, wenn der Taskplaner den Beendigungscode erkennen und basierend auf dem Ergebnis eine E-Mail senden könnte. Aber ich glaube nicht, dass es diese Funktion hat. Versuchen Sie eine E-Mail-Benachrichtigung zu erhalten? Vielleicht wäre es eine Möglichkeit für Sie, den Start von wbadmin in ein VBScript- oder PowerShell-Skript zu packen, das den Exit-Code erkennt und damit etwas tut. Shannon Wagner vor 12 Jahren 1
Ja, das ist eine Möglichkeit. Es funktioniert auch ...;) Hoffentlich wird MS denken, dass dies nützlich für Windows 8 ist. Pablo Montilla vor 12 Jahren 1
Das ist für mich ein Wahnsinn - Der Taskplaner hat alle diese Optionen zum Konfigurieren des Neustarts einer Aktion für den Fall, dass diese fehlschlägt, überprüft jedoch nicht einmal, ob eine Aktion einen Fehlercode zurückgibt. Ich frage mich, was auf der Erde eigentlich einen 'Misserfolg' für den Taskplaner darstellt. mackenir vor 10 Jahren 6
Angesichts dieser Antwort muss ich fragen: Löst der Task Scheduler sogar einen erneuten Versuch basierend auf dem Beendigungscode aus? jpmc26 vor 7 Jahren 0
3
schulle877

Es ist möglich, die Task neu zu starten, falls sie fehlschlägt.

  1. Verwenden Sie im Batch-Skript den folgenden Code, um ein Systemfehlerereignis zu erstellen:

    eventcreate / ID 100 / SO "Ihr Skriptname" / L ANWENDUNG / T FEHLER / D "Ihr Fehlergrund"

  2. Erstellen Sie eine neue Aufgabe mit einem Auslöser, der die Systemereignisse überwacht, und filtern Sie nach der gerade im Stapel hinzugefügten Kategorie und ID. Die Aktion dieser Aufgabe ist der Stapel erneut. Diese Task sollte um eine Minute verzögert werden, damit dieselbe Charge nicht zweimal gestartet wird!

Achten Sie darauf, keine Endlosschleife zu erstellen.

Hoffentlich hilft das!

Ich mag diesen Ansatz :) DavidPostill vor 7 Jahren 0