pourquoi la tâche du planificateur de tâches Windows 7 échoue avec l'erreur 2147942667

133

Je suis confronté à un problème étrange. J'ai planifié une tâche pour lancer un fichier batch. Lorsque j'exécute la tâche avec l'option, Run only when user is logged ontout fonctionne correctement. mais je veux exécuter cette tâche en arrière-plan et par conséquent je l'exécute en utilisant l'option Run whether user is logged on or not. Maintenant, lorsque j'exécute la tâche, cela ne fonctionne pas. J'obtiens 2 erreurs suivantes. Je ne comprends pas cette erreur. S'il te plaît, aide-moi à résoudre ce problème.

 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
la source
41
Convertissez le code d'erreur en hexadécimal pour obtenir 0x8007010B. Le 7 en fait une erreur Windows. Ce qui rend le code d'erreur 010B 267. "Le nom du répertoire n'est pas valide". Bien sûr, cela arrive.
Hans Passant
1
@HansPassant, c'est génial. Convertissez en hexadécimal, utilisez les quatre derniers octets pour rechercher le code d'erreur. J'espère que je peux me souvenir de celui-là!
Mark Berry
FWIW J'ai trouvé que l'interface utilisateur principale du planificateur de tâches avait la tâche avec un «Résultat de la dernière exécution» ou une colonne similaire, affichant un message d'erreur lisible «Le nom du répertoire n'est pas valide». Le correctif dans notre situation était la réponse de jp2code ci-dessous à propos de la suppression des citations du dossier Démarrer dans, car je l'avais copié à partir de la commande citée pour l'exécuter.
Neek
1
@RJDunnill, merci de m'avoir taguée là-dessus. Très utile!
Mark Berry il y a

Réponses:

253

J'ai eu ce même problème.

La solution pour moi a été trouvée dans l'article 2452723 de la base de connaissances Microsoft:

Les tâches planifiées à partir de Windows Vista ne s’exécutent pas si le chemin dans le champ «Démarrer dans (facultatif)» contient des guillemets

En gros, modifiez votre tâche planifiée et supprimez les devis du champ Démarrer dans:

  1. Ouvrez votre tâche planifiée
  2. Passer à l'onglet "Actions"
  3. Ouvrez votre action
  4. Supprimez les devis (") du champ" Commencer dans (facultatif) "
  5. Enregistrez et fermez toutes les boîtes de dialogue ouvertes

Boîte de dialogue Modifier l'action

Pour obtenir le message d'erreur correspondant:

1) Convertir 2147942667 en hexadécimal: 8007010B
2) Prendre les 4 derniers chiffres (010B) et convertir en décimal: 267
3) Exécuter: net helpmsg 267
4) Résultat: "Le nom du répertoire n'est pas valide."

Fenêtre d'invite de commandes

jp2code
la source
5
le problème était lié à l'autorisation d'utilisation. Lors Run whether user is logged on or notde l'exécution avec l'option , j'utilisais un utilisateur différent pour exécuter l'application. Ce nouvel utilisateur n'avait pas les autorisations appropriées pour lire les données et donc l'erreur. Merci.
Alok
1
Ce n'était pas non plus une «permission» pour moi. C'était le dossier Démarrer dans . Si c'est le cas "C:\Some Path\", c'est faux car il a des guillemets. Il doit dire `C: \ Some Path` (sans guillemets).
jp2code
16
Voilà la solution. Supprimez les guillemets de la zone de texte Démarrer dans le dossier . Une solution assez ésotérique. Des heures perdues à ce sujet - j'aurais aimé que Microsoft facilite les choses avec des erreurs utiles ou corrige ce bogue évident.
Joseph
6
Pour ce que ça vaut, j'obtiens cette erreur mais mon paramètre Démarrer dans le dossier n'a pas de guillemets, le chemin référencé n'existait pas.
shufler
2
Je n'utilise pas de citations et je reçois toujours le même problème. @RayofCommand: avez-vous trouvé une solution à ce problème.
User1551892
9

Pour moi, c'était le "Démarrer dans" - j'ai copié les valeurs d'un serveur plus ancien et mis à jour le chemin vers le nouvel emplacement .exe, mais j'ai oublié de mettre à jour l'emplacement "démarrer dans" - s'il n'existe pas, vous obtenir cette erreur aussi

Citant le commentaire de @ hans-passant ci-dessus, car il est utile pour déboguer ce problème:

Convertissez le code d'erreur en hexadécimal pour obtenir 0x8007010B. Le 7 en fait une erreur Windows. Ce qui rend le code d'erreur 010B 267. "Le nom du répertoire n'est pas valide". Bien sûr, cela arrive.

user230910
la source
7

Cela peut se produire pour plus d'une raison. Dans mon cas, cela s'est produit en raison d'un problème d'autorisations. L'utilisateur sous lequel la tâche s'exécutait n'avait pas l'autorisation d'écrire dans le répertoire des journaux et a donc échoué avec cette erreur.

Cookalino
la source
3

J'ai eu le même problème, sous Windows7.

J'obtenais l'erreur 2147942667 et un rapport indiquant que je ne pouvais pas exécuter c: \ windows \ system32 \ CMD.EXE. J'ai essayé avec et sans guillemets doubles dans le script et le démarrage et cela n'a fait aucune différence. Ensuite, j'ai essayé de remplacer toutes les références de chemin aux lecteurs réseau mappés et par des références UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) et cela a résolu le problème pour moi. Tapoter.

Pat Fahy
la source
Cela l'a finalement fait pour moi aussi. J'ai dû utiliser "Net Use" pour obtenir le nom du serveur, puis cingler pour obtenir le nom de domaine. En fin de compte, il s'agissait de \\ machine.domain.local \ app.exe. \\ Machine \ app.exe n'a pas fonctionné
greg
Je l'ai fait pour moi aussi. Merci!
Jace
2

Pour une réponse plus générique, convertissez la valeur d'erreur en hexadécimal, puis recherchez la valeur hexadécimale dans les constantes d'erreur et de réussite du planificateur de tâches Windows

flymike
la source
3
Salut Mike. Je calculatrice Windows en mode programmeur pour convertir 2147942667HEX: 0x8007010B. Cette valeur n'apparaît pas dans le lien que vous avez fourni. Juste pour info, bien sûr.
jp2code
4
Je viens de googlé: 2147942667 in hex. Google est maintenant aussi une calculatrice.
Baodad
0

Pour moi, c'était le "Start In" - j'ai accidentellement laissé le ".py" à la fin du nom de mon programme. Et j'ai oublié de mettre en majuscule le nom du dossier dans lequel il se trouvait («Apps»).

Rivières Cuomo
la source
0

Pour moi, cela était dû à la variable d'environnement PATH de l'utilisateur, qui ne semblait pas fonctionner même si l'utilisateur était correct, j'ai donc dû mettre le chemin complet de l'exécutable dans le champ du programme.

Rayzinnz
la source