L'ordonnanceur de tâche de Windows ne démarre pas la tâche de fichier par lot
j'ai un fichier batch avec le code ci-dessous pour arrêter et démarrer le service de rapport SQL:
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
j'ai mis en place la tâche programmée pour exécuter quotidiennement, il fonctionne actuellement comme système avec les plus hautes privilèges définis. J'ai mis en place l'option start in folder sur l'action, et tout semble généralement être mis en place correctement. Mais quand je dirige la tâche rien ne semble se produire, il dit que la tâche a fonctionné mais je ne peux pas voir que le service a été redémarré comme il est prévu de.
Quelqu'un peut-il me dire ce que je rate? Merci
13 réponses
assurez-vous de mettre le Commencer et 'programme / script' options correctement. Si votre adresse de fichier est: C:\Temp\foo.chauve-souris, réglez le "démarrer dans" option "C:\Temp" et le "Programme/script "option" foo.chauve-souris".
pour définir l'option 'Start in': clic droit tâche dans le planificateur de tâches > Properties > Actions > Edit.
si cela seul ne fonctionne pas alors essayer de déplacer le .bat file vers un répertoire avec des permissions de base (peut-être un répertoire partagé pour exemple.)
j'ai eu un problème où mon .le fichier bat était situé dans un dossier avec quelques permissions restrictives dessus, de sorte que seul mon compte d'utilisateur pouvait y accéder. Même si j'avais mis en place le planificateur de tâches pour utiliser mes pouvoirs, il n'a toujours pas. Le déplacement de la .fichier bat à un autre répertoire trié la question.
perdu beaucoup de temps sur cette stupide question!
ajouter une commande cd à l'endroit où votre fichier batch se trouve à la première ligne de votre fichier batch et voir si elle résout le problème.
cd D:\wherever\yourBatch\fileIs
astuce: veuillez utiliser des chemins absolus, les chemins relatifs ne devraient pas être un problème, mais scheduler a du mal à les comprendre.
j'ai eu le même problème. Je crois que c'est un privilège problème. Si vous avez sélectionné" exécuter seulement lorsque l'utilisateur est connecté", alors cela n'arrivera pas.
Vous avez certainement pensé à elle, mais je voulais l'enregistrer ici pour la prochaine personne qui a perdu des heures sur ce.
C'est un assez vieux thread mais le problème est toujours le même -
j'ai essayé plusieurs choses, aucun d'entre eux travaillaient -
- ajout D'un début dans le chemin (sans guillemets)
- supprimé le chemin complet du fichier batch dans le programme / Script champ etc
- Ajouté
C:\Windows\system32\cmd.exe
au programme et ajouté/c myscript.bat
au champ arguments.
C'est ce qui a fonctionné pour moi -
Zone Programme / Script - cmd
ajouter des Arguments - / c myscript.chauve-souris
Démarrer Dans : Chemin de myscript.chauve-souris
avait le même problème, assurez-vous de vérifier "exécuter seulement lorsque l'utilisateur est connecté" au moins c'est ce qui a rendu mon fichier bat vivant à nouveau.
Set 'programme / script' -- > fichier.chauve-souris set Commencer le reste du chemin d'accès (fichier.chauve-souris)
La solution est que vous devez décocher (désactiver) l'option "Exécuter seulement si l'utilisateur est connecté".
après ce changement, il commence à fonctionner sur ma machine.
Pour moi, le problème a été causé par l' .bat
inclus cd
un lecteur réseau. Cela a échoué, et puis l'appel plus tard au programme dans ce lecteur de réseau n'a rien fait.
j'ai compris cela en ajoutant > log.txt
dans le ajouter des arguments champ modifier l'action fenêtre pour la tâche.
Une solution est que vous pouvez exécuter votre '.bat' le fichier '.vbs' le fichier et vous pouvez exécuter ce fichier vbs planificateur de tâches windows.
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("cron_jobs.bat"), 0, True
Tu peux faire comme cela et j'espère que ça va résoudre votre problème.
essayez le code ci-dessous:
fichier batch.chauve-souris:
cd c:\batchfilepath
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
j'ai eu le même problème et aucune des solutions n'a fonctionné. Quand j'ai vérifié l'histoire, j'ai compris la question. J'ai eu cet avertissement
Task Scheduler did not launch task "\TASK_NAME" because instance "{34a206d4-7fce-3895-bfcd-2456f6ed6533}" of the same task is already running.
dans l'onglet Paramètres, il y a une option "si la tâche est déjà en cours d'exécution, alors la règle suivante s'applique:" et la valeur par défaut est "Ne démarrez pas une nouvelle instance". Changez cela pour" exécuter une nouvelle instance en parallèle "ou" arrêter l'instance existante " en fonction de ce que vous devez réellement faire.
je sais que c'est un vieux le fil et les solutions multiples sont bons ici, c'est exactement ce qui a fonctionné pour moi. Espérons que cela aide.
Pour moi, c'était de déclencher question. Par défaut, il devrait On a Schedule
dans l'onglet déclencheur. J'avais choisi At log on
et puis j'ai attendu pour exécuter la tâche. Comme son nom l'indique au journal sur, signifie que vous devez vous déconnecter et vous connecter.
essayez de le mettre sur un horaire et de le tirer chaque minute.
mon application n'a pas démarré via "Task Scheduler".
l'erreur dans "Event Viewer" est:System.IO.DirectoryNotFoundException
le" planificateur de tâches "essaie d'exécuter cette application avec l'utilisateur" système". Le problème était qu'un" lecteur réseau "n'était pas mappé pour l'utilisateur" système". Donc, ce que j'ai fait, j'ai créé un ".chauve-souris" de fichiers et cartographié le "lecteur réseau" avant de lancer l'application:
net use T: \172.20.2.215\images
cd C:\MyApplication
start MyApplication.exe
Vérifiez d'abord vos logs: "Event Viewer" - > Windows Logs -> Application