Aufgabenplaner - Aufgabe „erfolgreich“ mit Exitcode 0x8007001 abgeschlossen

Aufgabenplaner - Aufgabe „erfolgreich“ mit Exitcode 0x8007001 abgeschlossen

Ich führe eine tägliche Aufgabe unter Windows 10 Pro aus, die

  • den Computer aus dem Ruhezustand wecken
  • Starten Sie cmd.exe, führen Sie ein Befehlsskript aus, um eine Datei auf ein Netzlaufwerk zu kopieren,
  • Den Computer herunterfahren

Beim manuellen Starten der Aufgabe aus dem Aufgabenplaner heraus wird alles wie vorgesehen ausgeführt.

Wenn der Computer im Ruhezustand belassen wird, weckt der Taskplaner den Computer zur angegebenen Zeit, aber anscheinend wird die Befehlsdatei (.cmd) überhaupt nicht ausgeführt. Es wird keine Protokolldatei erstellt, keine Datei kopiert und der Computer wird nicht heruntergefahren. Die Aufgabe wird als"erfolgreich abgeschlossen mit dem Returncode 2147942401"das ist Hex 0x80070001. Dieser Fehlercode scheint auf eine „unzulässige Funktion“ hinzuweisen, aber ich habe keine Ahnung, was das sein könnte, insbesondere da die Aufgabe wie gesagt beim manuellen Start einwandfrei läuft.

Hier ist eine Übersicht über die Aufgabeneinstellungen (aus dem Deutschen übersetzt, aber es sollte klar sein):

  • Allgemein: Ausführung unabhängig von Benutzeranmeldung; kein Passwort speichern; höchste Privilegien; konfiguriert für Windows 10

  • Aktionen: Programm cmd.exe starten; Argumente: /c "Pfad-zum-Cmd-Skript\script.cmd >> logfile.txt"; starten in: leer

  • Bedingungen: Computer reaktivieren

  • Einstellungen: Ausführung bei Bedarf zulassen; bei fehlgeschlagener Ausführung alle 10 Minuten neu starten; Aufgabe beenden, wenn die Ausführung länger als 3 Tage dauert; Beendigung der aktiven Aufgabe erzwingen, wenn sie nicht auf Anforderung gestoppt wird; keine neue Instanz starten

Ich habe noch eine weitere Aufgabe: ein Backup mitgenaudieselbe Einstellung, die einwandfrei funktioniert (wacht auf, führt ein Skript aus und fährt dann den Computer herunter).

Jeder Hinweis ist willkommen, Fragen sind willkommen.

Antwort1

Eigentlich nicht. Ich habe jedoch die einfachsten Taskplanereinstellungen verwendet und jetzt funktioniert es.

Allgemein:

  • nur verwenden, wenn der Benutzer angemeldet ist
  • höchste Privilegien nutzen
  • Konfigurieren für Windows 10

Aktion:

Programm/Skript: C:\Windows\System32\cmd.exe
Argumente:/c <your batch file with parameters>

Bedingungen:

  • Computer neu aktivieren

Einstellungen:

  • Ausführung zulassen, falls erforderlich
  • so bald wie möglich ausführen, wenn der Start verpasst wurde
  • Wenn die Aufgabe fehlschlägt, alle 5 Minuten neu starten
  • Aufgabe beenden, wenn die Ausführung länger als 3 Tage dauert
  • erzwingt die Beendigung, wenn sie nicht auf Anforderung gestoppt wird
  • Aktuelle Instanz stoppen, wenn die Aufgabe bereits ausgeführt wird

Nun läuft es seit Monaten jeden Tag zur angegebenen Zeit.

Antwort2

Powershell ist bei geplanten Aufgaben pingelig. Ich habe viele Stunden damit verbracht. Nachfolgend finden Sie eine Methode, die ich zur Fehlerbehebung mithilfe der bewährten Batchdatei verwende.

Versuchen Sie, eine Zwischen-Batchdatei zu erstellen, und lassen Sie die Batchdatei die Powershell aufrufen. Mit der Batchdatei können Sie eine Reihe von Echos ausführen, die Sie in ein Protokoll ausgeben können. Auf diese Weise können Sie die vollständigen Standardausgabe-/Standardfehlerberichte für den Prozess anzeigen. Dies kann bei der detaillierteren Fehlerbehebung hilfreich sein.

Das Protokoll kann durch Anhängen der Argumente an die geplante Aufgabe erstellt werden > "<path_to_log_file>" 2>&1.

Antwort3

Bei mir funktionierte die Aufgabe manchmal und manchmal nicht. Laut dem Verlauf der geplanten Aufgaben sah es bei einem Fehler so aus, als ob die Aufgabe etwa 40 Sekunden lang ausgeführt wurde, nichts tat und abgeschlossen wurde action "C:\windows\SYSTEM32\cmd.exe" with return code 2147942401.

  • In diesem Fall war es sinnlos, die Gruppenrichtlinieneinstellungen zu ändern, da es manchmalwürdefunktionieren, aber nicht immer (siehehttps://stackoverflow.com/questions/48343993/batch-file-from-scheduled-task-returns-code-2147942401/).

  • Das Vereinfachen, Neuerstellen und Neukonfigurieren meiner Aufgabe hat das Problem nicht behoben.

  • Ich habe auch erwogen, meine Batchdatei zu zerstückeln und die Standardausgabeumleitung zu entfernen, wodurch ich die Protokollierungsfunktion aufgeben (und blind werden) würde. Oder einfach einen tatsächlichen .exe-Prozess auszuführen, anstatt überhaupt eine Batchdatei zu verwenden. Das hätte eine Lösung sein können.

  • Ich habe auch überlegt, die geplante Aufgabe „beim Start“ durch einen Dienst zu ersetzen, was für ein so triviales Problem ein ziemlich teures Experiment gewesen wäre.

Letztendlich habe ich überlegt, eine Verzögerung für die geplante Aufgabe hinzuzufügen, und habe versucht, meine Aufgabe wie einen verzögerten Dienst zu konfigurieren – Dienste können entweder „Automatisch“ oder „Automatisch (Verzögerter Start)“ sein. Für geplante Aufgaben „Beim Start“ ist es der Auslöser, der seine eigenen individuellen Eigenschaften hat, einschließlich der Möglichkeit, eine Verzögerung hinzuzufügen:

Bild zeigt eine Lösung zum Verzögern einer geplanten Startaufgabe

Ich glaube, dass meine geplante Aufgabe manchmal ein paar Millisekunden zu früh gestartet wurde und einige Betriebssystemdienste oder -funktionen noch nicht verfügbar oder zulässig waren. Das Problem wurde einfach durch das Hinzufügen einer kleinen Verzögerung beim Trigger behoben.

verwandte Informationen