web-dev-qa-db-fra.com

le fichier de commandes d'une tâche planifiée renvoie le code 2147942401

J'essaie de planifier un travail pour exécuter un fichier de commandes avec le Planificateur de tâches de Windows 10, mais le code de retour 2147942401 en résulte.

Le fichier de commandes est sur un emplacement distant, donc je donne le chemin absolu
"" \\ serveur1\transferts de fichiers\fichiers de données\inbound\abc\csv\Excel à csv.bat " 

Si j'exécute le script de commandes avec la commande Invite, alors cela fonctionne correctement .  Properties - General  Actions - Edit Action

Le script de traitement par lots consiste à convertir Excel en fichier csv.

Le contenu du script est:

FOR /f "delims=" %%i IN ("\\server1\file transfers\Data Files\Inbound\abc\CSV\*.xlsx" ) DO to-csv.vbs  "\\server1\file transfers\Data Files\Inbound\abc\*.xlsx" "%%~ni.csv"

Son appelant un autre script VB qui est to-cvs.vbs

Si j'effectue des modifications dans l'onglet Action comme indiqué par @Steinspecht (planificateur de tâches - la tâche est terminée «avec succès» avec le code de sortie 0x8007001), alors je reçois également le code 2147942401 Je ne sais pas si Ajouter un argument est écrit correctement enter image description here

2
Sbanga

Les codes d'erreur du Planificateur de tâches sont répertoriés en tant qu'hexadécimaux dans msdn et votre code 2147942401 est converti en hexadécimal en 0x80070001 (qui n'est pas répertorié ici), mais ce superutilisateur le décrit comme une "fonction illégale". Il a résolu son problème en utilisant "les paramètres les plus simples du planificateur de tâches et cela fonctionne maintenant". Je remarque qu'il exécute sa tâche uniquement lorsque l'utilisateur est connecté. Il n'a donc pas besoin de "Connexion en tant que travail par lots".

Si vous souhaitez exécuter le travail par lots lorsque vous n'êtes pas connecté, vous devez disposer d'un privilège spécial appelé "Ouvrir une session en tant que travail". Notez qu'il existe également un privilège "Connexion DENY en tant que travail par lots" que vous ne voudriez pas.

Depuis Social Technet , vous pouvez attribuer ce privilège avec

  • Tapez secpol.msc/s
  • Sélectionnez "Local Policies" dans MSC enfichable.
  • Sélectionnez "Attribution des droits utilisateur".
  • Cliquez avec le bouton droit sur "Connexion en tant que travail par lots" et sélectionnez Propriétés.
  • Cliquez sur "Ajouter un utilisateur ou un groupe" et incluez l'utilisateur approprié.

 Local Security Policy Snap-In

Votre tâche appelle une ressource réseau. Ces scripteurs powershell recommandent de ramener ces ressources sur votre ordinateur local pour éliminer tout risque de problèmes de réseau/connectivité/autorisations.

2
woodvi

Ce code d'erreur peut également résulter d'un bogue/d'une erreur dans le script Powershell actuel, même si tous les paramètres du planificateur de tâches, autorisations, etc. sont corrects. dans mon cas, je faisais référence à un répertoire qui n'existe pas.

0
M Herbener