Warum Windows 7 Task Scheduler Task mit Fehler 2147942667 fehlschlägt

131

Ich stehe vor einem seltsamen Problem. Ich habe eine Aufgabe geplant, um eine Batchdatei zu starten. Wenn ich die Aufgabe mit Option ausführe, Run only when user is logged onfunktioniert alles einwandfrei. aber ich möchte diese Aufgabe im Hintergrund ausführen und daher führe ich sie mit der Option aus Run whether user is logged on or not. Wenn ich jetzt die Aufgabe starte, funktioniert sie nicht. Ich bekomme folgende 2 Fehler. Ich verstehe diesen Fehler nicht. Bitte helfen Sie mir, dieses Problem zu beheben.

 Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
 Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon"  task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.
Alok
quelle
41
Konvertieren Sie den Fehlercode in hex, um 0x8007010B zu erhalten. Die 7 macht es zu einem Windows-Fehler. Das macht 010B Fehlercode 267. "Der Verzeichnisname ist ungültig". Klar, das passiert.
Hans Passant
1
@ HansPassant, das ist genial. In Hex konvertieren, mit den letzten vier Bytes nach Fehlercode suchen. Hoffe ich kann mich daran erinnern!
Mark Berry
FWIW Ich fand, dass die Hauptbenutzeroberfläche des Taskplaners die Aufgabe mit einer 'Last Run Result' oder einer ähnlichen Spalte hatte, in der eine lesbare Fehlermeldung 'Der Verzeichnisname ist ungültig' angezeigt wurde. Die Lösung in unserer Situation war die Antwort von jp2code unten zum Entfernen von Anführungszeichen aus dem Ordner "Start in", da ich sie aus dem angegebenen Befehl zum Ausführen kopiert hatte.
Neek
Mein Problem, das zu 2147942667 führte, war auf ein zugeordnetes Laufwerk zurückzuführen. Wenn ich die Pfade "Programm / Skript" und "Start in" festgelegt habe, um die vollständige UNC zu verwenden, wurde der Job erfolgreich ausgeführt.
user432532
Um an den ausgezeichneten Kommentar von @ HansPassant anzuknüpfen: docs.microsoft.com/en-us/windows/win32/debug/system-error-codes
Ian Kemp

Antworten:

252

Ich hatte das gleiche Problem.

Die Lösung für mich wurde im Microsoft KB-Artikel 2452723 gefunden:

Geplante Aufgaben ab Windows Vista können nicht ausgeführt werden, wenn der Pfad im Feld "Start in (optional)" in Anführungszeichen steht

Bearbeiten Sie grundsätzlich Ihre geplante Aufgabe und entfernen Sie die Angebote aus dem Feld Start In:

  1. Öffnen Sie Ihre geplante Aufgabe
  2. Wechseln Sie zur Registerkarte "Aktionen"
  3. Öffnen Sie Ihre Aktion
  4. Entfernen Sie Anführungszeichen (") aus dem Feld" Start in (optional) ".
  5. Speichern und schließen Sie alle geöffneten Dialoge

Dialogfeld "Aktion bearbeiten"

So erhalten Sie die entsprechende Fehlermeldung:

1) Konvertieren Sie 2147942667 in hex: 8007010B
2) Nehmen Sie die letzten 4 Ziffern (010B) und konvertieren Sie in Dezimalzahlen: 267
3) Führen Sie Folgendes aus: net helpmsg 267
4) Ergebnis: "Der Verzeichnisname ist ungültig."

Eingabeaufforderungsfenster

jp2code
quelle
5
Das Problem hing mit der Verwendung von Berechtigungen zusammen. Bei Run whether user is logged on or notder Ausführung mit der Option habe ich einen anderen Benutzer zum Ausführen der Anwendung verwendet. Dieser neue Benutzer hatte keine entsprechenden Berechtigungen zum Lesen der Daten und damit des Fehlers. Vielen Dank.
Alok
1
Es war auch für mich keine "Erlaubnis". Es war der Ordner Start in . Wenn ja "C:\Some Path\", ist das falsch, weil es Anführungszeichen hat. Es muss "C: \ Some Path" (ohne Anführungszeichen) stehen.
JP2-Code
16
Das ist die Lösung. Entfernen Sie Anführungszeichen aus dem Textfeld Start in Ordner . Eine ziemlich esoterische Lösung. Verschwendete Stunden - wünschte, Microsoft hätte es mit hilfreichen Fehlern einfacher gemacht oder diesen offensichtlichen Fehler behoben.
Joseph
6
Für das, was es wert ist, erhalte ich diesen Fehler, aber meine Einstellung "In Ordner starten" enthält keine Anführungszeichen, sondern der Pfad, auf den verwiesen wurde, war nicht vorhanden.
Shufler
2
Ich verwende keine Anführungszeichen und bekomme immer noch das gleiche Problem. @ RayofCommand: Haben Sie eine Lösung für dieses Problem gefunden?
User1551892
9

Für mich war es das "Start In" - ich habe die Werte von einem älteren Server kopiert und den Pfad zum neuen .exe-Speicherort aktualisiert, aber ich habe vergessen, den "Start in" -Standort zu aktualisieren - wenn er nicht vorhanden ist, Sie bekomme auch diesen Fehler

Zitieren des Kommentars von @ hans-passant von oben, da es für das Debuggen dieses Problems hilfreich ist:

Konvertieren Sie den Fehlercode in hex, um 0x8007010B zu erhalten. Die 7 macht es zu einem Windows-Fehler. Das macht 010B Fehlercode 267. "Der Verzeichnisname ist ungültig". Klar, das passiert.

user230910
quelle
7

Dies kann aus mehreren Gründen geschehen. In meinem Fall geschah dies aufgrund eines Berechtigungsproblems. Der Benutzer, unter dem die Aufgabe ausgeführt wurde, hatte keine Berechtigung zum Schreiben in das Protokollverzeichnis, sodass dieser Fehler fehlschlug.

Cookalino
quelle
3

Ich hatte das gleiche Problem unter Windows 7.

Ich habe den Fehler 2147942667 und den Bericht erhalten, dass c: \ windows \ system32 \ CMD.EXE nicht ausgeführt werden kann. Ich habe es mit und ohne doppelte Anführungszeichen im Skript und im Start-in versucht und es machte keinen Unterschied. Dann habe ich versucht, alle Pfadreferenzen zu zugeordneten Netzwerklaufwerken und durch UNC-Referenzen (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) zu ersetzen, und das hat es für mich behoben. Klopfen.

Pat Fahy
quelle
Das hat es endlich auch für mich getan. Ich musste "Net Use" verwenden, um den Servernamen zu erhalten, und dann pingen, um den Domänennamen zu erhalten. Letztendlich war es \\ machine.domain.local \ app.exe. \\ Machine \ app.exe hat nicht funktioniert
greg
Habe es auch für mich getan. Vielen Dank!
Jace
2

Um eine allgemeinere Antwort zu erhalten, konvertieren Sie den Fehlerwert in hexadezimal und suchen Sie den hexadezimalen Wert unter Windows Task Scheduler-Fehler- und Erfolgskonstanten

flymike
quelle
3
Hallo Mike. Ich habe Windows Calculator im Programmiermodus verwendet, um 2147942667in HEX zu konvertieren : 0x8007010B. Dieser Wert wird in dem von Ihnen angegebenen Link nicht angezeigt. Natürlich nur zu Ihrer Information.
JP2-Code
4
Ich habe es nur gegoogelt : 2147942667 in hex. Google ist jetzt auch ein Taschenrechner.
Baodad
0

Für mich war es das "Start In" - ich bin versehentlich in der '.py' am Ende des Namens meines Programms abgereist. Und ich habe vergessen, den Namen des Ordners groß zu schreiben, in dem er sich befand ('Apps').

Flüsse Cuomo
quelle
0

Für mich lag dies an der Umgebungsvariablen Benutzer PATH, die nicht zu funktionieren schien, obwohl der Benutzer korrekt war. Daher musste ich den gesamten ausführbaren Pfad in das Programmfeld einfügen.

rayzinnz
quelle