web-dev-qa-db-fra.com

La tâche planifiée Windows ne fonctionne pas avec le code d'erreur 0xc000013a

J'utilise Windows Server 2003 et j'ai une tâche planifiée qui ne parvient pas à compléter. La tâche est définie pour exécuter un script de commande Windows (.cmd) à 15h chaque jour. Le script exécute un programme qui extrait certaines données d'une base de données SQL Server et télécharge ces données sur un serveur FTP.

Le code d'erreur affiché dans la colonne "Dernier résultat" du dossier Tâches planifiées est 0xc000013a. Une recherche rapide de Google mène à cette page de support Microsoft qui indique: le code d'erreur "C" le plus courant est "0xc000013a: l'application s'est terminée à la suite d'un CTRL + C".

Personne n'est connecté au moment où la tâche fonctionne, il n'y a donc personne à appuyer sur Ctrl + C. Je ne suis pas sûr de comprendre ce qui est dit ici dans la documentation Microsoft.

J'ai vérifié les choses rudimentaires - la tâche planifiée est activée, planifiée de fonctionner chaque jour et de pointer vers un fichier qui existe dans un emplacement valide. Fait intéressant, lorsque j'exécute cette tâche manuellement (en exécutant le script .cmd à partir de la ligne de commande ou en cliquant avec le bouton droit de la souris sur la tâche et en cliquant sur "Exécuter"), la tâche se termine avec succès.

Que signifie ce code d'erreur et comment puis-je obtenir cette tâche à courir lorsque je ne suis pas là pour le forcer?

11
Brian Willis

Je ne peux pas répondre à la question directement car je ne connais pas spécifiquement ce que signifie le message d'erreur (ni comment le réparer), mais si j'essayais de résoudre ce problème, j'ajouterais quelques écrites à un fichier journal à Des points stratégiques dans le script et ensuite après l'heure prévue, voir le dernier point de contrôle à exécuter.

Ma suspicion serait que quelque chose qui échoue à cause des informations d'identification, le script est en cours ou quelque chose dans le script a besoin d'un utilisateur connecté. Rétrécissement où dans les choses du script échouent peut vous aider à trouver le code "fautif".

4
cori

Je l'ai couru aujourd'hui sur un serveur distant et la solution consistait à modifier le paramètre Exécuter de "Exécuter uniquement lorsque l'utilisateur est connecté" pour "exécuter si l'utilisateur est connecté ou non".

Avec "Exécuter uniquement lorsque l'utilisateur est connecté" La tâche lance une fenêtre de commande fermée lorsque ma session de bureau à distance a expiré. Avec "Exécuter si l'utilisateur est connecté ou non" Aucune fenêtre n'est affichée lorsque la tâche s'exécute, l'exécution ne s'arrête pas lorsque ma session de bureau à distance se termine.

2
VolleyJosh

Si cela a précédé, peut-être une condition comme une panne de réseau ou un problème sur un autre hôte peut expliquer l'échec.

1
Ted Taylor

Si vous essayez d'exécuter le programme sous contrôle du planificateur de tâches, le système.Environment.CurrentTrectordirectory retournera C:\Windows\System32, et non sur l'emplacement de votre exécutable. Cette erreur peut être une erreur de fichier non trouvé; J'essayais de me connecter à un sous-répertoire et cela n'existait pas dans l'arbre System32.

1
roadkill42

J'ai eu la même erreur et c'est parce que le fichier de commandes que j'allais en cours d'exécution vous invite à supprimer certains fichiers avec Del Commande. Comme il n'y a pas d'utilisateur à répondre au processus Y/N au traitement par lots, la tâche planifiée est terminée. Ce qui suit est le message que j'ai trouvé sur mon journal des tâches planifiées: "La tâche a été terminée. Cette action a été initiée par un administrateur ou par le service du planificateur de tâches (car, par exemple, l'ordinateur est maintenant non inactif)." Ma recommandation consiste à exécuter la tâche manuellement à partir de l'invite de commande pour voir où elle s'arrête ou invite à l'interaction de l'utilisateur, corrigez-la et votre tâche va fonctionner correctement.

1
ruddwall

Similaire à la réponse de Cori, je vous recommanderais de vérifier à qui la tâche planifiée est définie pour exécuter, comme je l'ai vu que cette erreur se produise lorsque le compte d'utilisateur qui exécute la tâche n'a pas les mêmes autorisations que l'utilisateur connecté

1
Glenn Slaven

J'ai eu le même problème et je l'ai réparé en modifiant la gâchette de "Sous Startup System" sur "On Logon".

0
Andrei G

avait le même problème. Corrigé par la lecture avec l'utilisateur qui est enregistré pour exécuter la tâche planifiée. En fin de compte, la modification du domaine était la réponse.

0
tal