J'ai un fichier de commandes avec le code ci-dessous pour arrêter et démarrer le service SQL Report:
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
J'ai configuré la tâche planifiée pour une exécution quotidienne. Elle s'exécute actuellement en tant que SYSTÈME avec les privilèges les plus élevés. J'ai configuré l'option Démarrer dans le dossier de l'action et tout semble en général être configuré correctement. Mais lorsque j'exécute la tâche, rien ne semble se produire. La tâche a été exécutée, mais je ne vois pas que le service a été redémarré comme prévu.
Quelqu'un peut-il me diriger vers ce qui me manque? Merci
Assurez-vous de définir correctement les options 'Démarrer dans' et 'Programme/script' . Si votre adresse de fichier est: C:\Temp\foo.bat, définissez l'option "démarrer dans" sur "C:\Temp" et l'option "Programme/script" sur "foo.bat".
Pour définir l'option 'Démarrer dans': Cliquez avec le bouton droit de la souris sur le planificateur de tâches > Properties > Actions > Edit.
Si cela seul ne fonctionne pas, essayez de déplacer le fichier .bat dans un répertoire avec les autorisations de base (peut-être un répertoire partagé, par exemple).
J'ai eu un problème lorsque mon fichier .bat se trouvait dans un dossier avec des autorisations restrictives, de sorte que seul mon compte d'utilisateur puisse y accéder. Même si j'avais configuré le planificateur de tâches pour utiliser mes informations d'identification, cela a quand même échoué. Déplacez le fichier .bat vers un autre répertoire pour résoudre le problème.
Beaucoup de temps perdu sur cette question stupide!
ajoutez une commande cd à l'emplacement de votre fichier de commandes sur la première ligne de votre fichier de commandes et vérifiez si le problème est résolu.
cd D:\wherever\yourBatch\fileIs
CONSEIL: veuillez utiliser des chemins absolus, les chemins relatifs ne devraient pas être un problème, mais le planificateur a du mal à les comprendre.
J'ai eu le même problème. Je crois que c'est un problème de privilège. Si vous avez sélectionné "Exécuter uniquement lorsque l'utilisateur est connecté", cela ne se produira pas.
J'espère que vous l'aurez compris, mais je voulais l'enregistrer ici pour la prochaine personne qui a perdu des heures à ce sujet.
C'est un joli vieux fil, mais le problème est toujours le même -
J'ai essayé plusieurs choses, aucune d'entre elles n'a fonctionné -
C:\Windows\system32\cmd.exe
au programme et de /c
myscript.bat
au champ arguments.C'est ce qui a fonctionné pour moi -
Champ Programme/Script - cmd
Ajouter des arguments -/c myscript.bat
Démarrer dans: chemin vers myscript.bat
Définir 'Programme/script' -> fichier.bat Set 'Démarrer dans' le reste du chemin (fichier.bat)
Si vous aviez le même problème, assurez-vous de cocher "Exécuter uniquement lorsque l'utilisateur est connecté", du moins c'est ce qui a redonné vie à mon fichier bat.
Mon application n'a pas pu démarrer via "Planificateur de tâches".
L'erreur dans "Observateur d'événements" est la suivante: System.IO.DirectoryNotFoundException
Le "Planificateur de tâches" tente d'exécuter cette application avec l'utilisateur "SYSTEM". Le problème était qu'un "lecteur réseau" n'était pas mappé pour l'utilisateur "SYSTEM". J'ai donc créé un fichier ".bat" et mappé 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 donc d'abord vos journaux: "Observateur d'événements" -> Journaux Windows -> Application
La solution consiste à décocher (désactiver) l'option "Exécuter uniquement si l'utilisateur est connecté".
Après ce changement, cela commence à fonctionner sur ma machine.
Essayez le code ci-dessous:
Batchfile.bat:
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é. Lorsque j'ai vérifié l'historique, j'ai compris le problème. 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.
L'onglet Paramètres contient une option déroulante pour "Si la tâche est déjà en cours d'exécution, la règle suivante s'applique:" et la valeur par défaut est "Ne pas démarrer une nouvelle instance". Modifiez cela en "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 fil et que les solutions multiples sont bonnes, c’est ce qui a bien fonctionné pour moi. J'espère que ça aide.
Pour moi, le problème était causé par le .bat
qui incluait une cd
sur un lecteur réseau. Cela a échoué, puis l'appel ultérieur du programme dans ce lecteur réseau n'a rien fait.
J'ai compris cela en ajoutant > log.txt
dans le champ Ajouter des arguments de l'action Edit window pour la tâche.
Une solution consiste à exécuter votre fichier '.bat' avec '.vbs' et à exécuter ce fichier vbs dans windows scheduler .
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("cron_jobs.bat"), 0, True
Vous pouvez faire comme ceci et j'espère que cela résoudra votre problème.
Mon problème a été causé par OneDrive. OneDrive synchronisait le dossier dans lequel vivait mon fichier de commandes, ce qui semble empêcher son exécution par le Planificateur de tâches. (Quelqu'un chez MS n'a-t-il pas testé ce genre de chose?)
Quoi qu'il en soit, en déplaçant mon fichier de commandes dans un dossier qui n'était pas dans OneDrive, le fichier de commandes pouvait être démarré par le Planificateur de tâches.
Sur un système Windows prenant en charge runas
. Tout d’abord, lancez votre programme indépendamment en le lançant à partir d’une ligne de commande exécutée sous cet utilisateur, comme suit:
runas /user:<domain\username> cmd
Ensuite, dans cette nouvelle ligne de commande, cd
indique le chemin à partir duquel vous souhaitez que le programme de lancement de tâches lance votre programme et saisisse tous les arguments, par exemple.
cd D:\Scripts\
, puis exécutez
C:\python27\pthon.exe script.py
Toutes les erreurs supprimées par le planificateur de tâches doivent apparaître dans la sortie en ligne de commande et faciliteront le débogage.
Pour moi, c'était un problème déclencheur. Par défaut, On a Schedule
devrait figurer dans l'onglet de déclenchement. J'avais sélectionné At log on
et j'attendais alors d'exécuter la tâche. Comme son nom l'indique lors de la connexion, cela signifie que vous devez vous déconnecter et vous connecter.
Essayez de le mettre sur un calendrier et le feu à chaque minute.