Seite 1 von 1

Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 10:48
von sfx2k
Hallo zusammen,

ich rufe eine Routine folgendermaßen von der Console auf:

Code: Alles auswählen

python -c "from my_lib import registry as reg; reg.set_registry_value('hkcr', '._aaa', 'Test', 'testtest')"
Es soll im Registry Schlüssel HKEY_CURRENT_USER\._aaa der Wert Test auf testtest gesetzt werden.
Das funktioniert auch soweit.

Nun ändere ich den Schlüssel auf einen nicht existierenden:

Code: Alles auswählen

python -c "from my_lib import registry as reg; reg.set_registry_value('hkcr', '._bbb', 'Test', 'testtest')"
Auf der Console bekomme ich korrekterweise eine Fehlermeldung
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden
Ich möchte diesen Aufruf gerne aus dem Windows-Task-Scheduler heraus machen.
Das Problem ist aber, dass dieser mir den Task als erfolgreich abgeschlossen anzeigt.
Ich hätte jetzt erwartet, dass ich die Fehlermeldung auch dort irgendwo einsehen kann.
Woher soll ich denn da wissen, dass etwas schief gelaufen ist?

Funktioniert das damit generell nicht, oder muss ich irgendetwas besonderes machen?
(Von externem logging wurde mir abgeraten, da die meisten Scheduler das von mir gewünschte wohl beherrschen sollen).

Hat jemand eine Idee?

Re: Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 11:16
von darktrym
Bei mir ist der nicht erfolgreich. So wie aus DOS Zeiten liefert ERRORLEVEL bei erfolgreicher Ausführung eine 0, dein Code liefert eine 1.
Vielleicht hilfts das als Batch zu schreiben.

Re: Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 11:44
von BlackJack
@sfx2k: Das etwas schief gelaufen ist sollte man am Rückgabecode sehen können der normalerweise 0 ist, bei Ausnahmen aber 1.

Die Ausgabe scheint im Nirwana zu verschwinden. Die muss man wohl selber irgendwo mitprotokollieren wenn man sie aufheben möchte. Wenn es Windows-typisch sein soll, würde ich mal schauen wie man Einträge in das Windows-Ereignisprotokoll bekommt und dann für das Logging-Modul einen entsprechenden Handler schreiben, oder noch besser, erst einmal schauen ob es so etwas schon irgendwo gibt.

Re: Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 12:16
von Sirius3
wenn man die Dokumentation zum logging-Modul entsprechend weit liest, kommt irgendwann logging.handlers.NTEventLogHandler.

Re: Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 12:23
von sfx2k
darktrym hat geschrieben: Bei mir ist der nicht erfolgreich. So wie aus DOS Zeiten liefert ERRORLEVEL bei erfolgreicher Ausführung eine 0, dein Code liefert eine 1.
Vielleicht hilfts das als Batch zu schreiben.
Das kann bei Dir nicht erfolgreich sein, da es nicht auf die Standard-Lib geht, sondern auf eine von mir geschriebene Routine ;)
Lass Dir aber versichert sein, dass der erste Aufruf erfolgreich ist; der Zweite nicht :)
BlackJack hat geschrieben: Das etwas schief gelaufen ist sollte man am Rückgabecode sehen können der normalerweise 0 ist, bei Ausnahmen aber 1.
Ah jetzt ja. Jetzt sehe ich das auch; ich habe immer nur im Verlauf des Tasks geschaut, wo bei Fehlern, die direkt auftreten (bspw. wenn die Python.exe nicht gefunden worden wäre) eine entsprechende Meldung aufscheint.
In der tabellarischen Ansicht wird allerdings unter Ergebnis der letzten Ausführung besagte 1 bei einem Fehler angezeigt :)
Dennoch fehlt mir der Grund, weswegen ich ja Exceptions abgefangen und extern mitgeloggt hatte. Das wurde mir aber ja nicht empfohlen :(

Also lag ich doch richtig, für Aufrufe, die man nicht selber antriggert um sie zu überwachen, zu loggen?
Ich werde mich mal mit dem Logging-Modul auseinandersetzen.
Sirius3 hat geschrieben: wenn man die Dokumentation zum logging-Modul entsprechend weit liest, kommt irgendwann logging.handlers.NTEventLogHandler.
Da mir vom Abfangen von Exceptions abgeraten wurde, habe ich das bisher nicht getan, werde es aber jetzt nachholen.

Re: Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 13:01
von MagBen
Bist Du Dir sicher, dass der Windows task schedular stderr nicht irgendwohin schreibt, bzw. dazu konfiguriert werden kann es zu tun?

Hast Du schon an den im Folgenden beschriebenen Stellen nach log-files geschaut?
http://superuser.com/questions/164896/h ... -task-logs
http://technet.microsoft.com/en-us/libr ... 10%29.aspx

Re: Windows Task Scheduler - Verhalten bei Script-Error

Verfasst: Montag 15. September 2014, 13:51
von sfx2k
MagBen hat geschrieben:Bist Du Dir sicher, dass der Windows task schedular stderr nicht irgendwohin schreibt, bzw. dazu konfiguriert werden kann es zu tun?

Hast Du schon an den im Folgenden beschriebenen Stellen nach log-files geschaut?
http://superuser.com/questions/164896/h ... -task-logs
http://technet.microsoft.com/en-us/libr ... 10%29.aspx
Ja, bin ich. Weder im Eventlog noch in besagter Text-Datei steht etwas drin.
Und beim Task selber sehe ich, wie oben bereits erläutert, auch nichts.