J'essaie d'exécuter un fichier de commandes sur Windows 7 à partir du Planificateur de tâches. Je peux exécuter le fichier de commandes correctement si je l'exécute à partir de l'invite de commandes.
Si je l'exécute à partir du Planificateur de tâches pour ne l'exécuter que lorsque l'utilisateur est connecté, la tâche s'exécute sans aucun problème. Toutefois, lorsqu'il s'exécute alors que l'utilisateur n'est pas connecté, le Planificateur de tâches semble exécuter le fichier mais rien ne se produit.
J'ai essayé de changer le fichier de commandes pour rien mais la ligne suivante pour m'assurer qu'il n'est pas à cause de ce qu'il y a dans le fichier de commandes:
echo "success" >> c:\temp\test.log
et cela ne fonctionne pas. Des idées? Je l'ai exécuté avec les privilèges les plus élevés et avec un compte administrateur qui dispose des autorisations complètes sur le fichier de commandes et le dossier dans lequel le fichier est en cours d'écriture.
la source
Réponses:
PROGRAMMATEUR DE TÂCHES: SCRIPT DE LOTS PROGRAMMÉS NE FONCTIONNE PAS
Propriétés du Planificateur de tâches. . .
Depuis Windows
Task Scheduler
au travailProperties
(voir la plupart des captures d'écran en bas) dans le. . .1.
General
onglet, assurez-vous que les options ci-dessous sont sélectionnées / cochées ou décochées comme indiqué dans l' écran d'impression ARun only when user is logged on
Run whether user is logged on or not
Run with the highest privileges
2.
Conditions
onglet, assurez-vous que les options ci-dessous sont sélectionnées , cochées ou décochées comme indiqué dans l' écran d'impression BWake the computer to run this task
3.
Actions
Cliquez sur l'onglet, cliquez surEdit
et assurez-vous que leStart in (optional)
paramètre est défini comme indiqué dans l'exemple ci-dessous ( NE placez PAS de guillemets autour) pour le chemin d'accès complet pointant où se trouve le script de commandes SANS barre oblique inverse "\
" Écran d'impression CCONSIDÉRATIONS DE SÉCURITÉ
Une fois que vous avez appuyé sur
OK
( 2. ci-dessus), il devrait vous inviter à saisir les informations d'identification pour exécuter ceci, et ces informations d'identification seront celles qui auront besoin d'accéder auEXECUTE
fichier de commandes là où elles existent, et elles devront également avoir accès pour faire tout ce que le fichier de commandes exécute. que vous avez écrit.Il peut être préférable de configurer un compte d'utilisateur de service / proxy statique pour ce processus, puis d'utiliser ses informations d'identification pour exécuter le processus. Vous devez vous assurer que son mot de passe est fort et qu'il ne doit jamais expirer. Il doit accéder au
EXECUTE
lot et exécuter tout ce que le processus de script par lot est en cours d'exécution et toutes les commandes et ressources, etc. il utilise également.Il semble que l'option que
Run whether user is logged on or not
vous DEVEZ vérifierRun with highest privileges
pour qu'elle s'exécute réellement comme prévu à partir du Planificateur de tâches.Vérification des erreurs
S'il y a un problème avec le script de commandes réel mais que le Planificateur de tâches Windows l' exécute pour l'exécuter mais que la logique du script de commandes sort, etc. pour une raison quelconque, le Planificateur de tâches peut ne pas voir cet échec à ce niveau. De son point de vue (par défaut la plupart du temps), il exécute le fichier de commandes de manière à ce qu'il puisse l'exécuter et qu'il y ait accès, son travail soit effectué avec succès.
Ajoutez la vérification des erreurs ou la journalisation à la logique du script de traitement par lots pour détecter (ou dépanner ) les problèmes à ce niveau, notamment en vous assurant que le contexte de sécurité sous lequel le planificateur de traitement par lots l'exécute dispose d'un accès approprié aux commandes, ressources, etc. sous lesquelles le script de traitement par lots s'exécute.
Considérations de stratégie de groupe
VÉRIFIEZ LA POLITIQUE DU GROUPE ET CONNECTEZ-VOUS COMME AUTORISATIONS D'EMPLOI
Logique de script par lots avec lecteurs mappés ou chemin UNC complet, et problèmes. . .
Si votre script fait référence à un lecteur réseau mappé mais que vous le souhaitez
Run whether the user is logged on or not
, dans ce contexte, le mappage de lecteur peut ne pas être réellement là pour que le processus par lots fasse ce qui est attendu.Si possible, utilisez des
UNC
chemins dans votre logique de script de traitement par lots plutôt qu'une lettre de lecteur mappé pour éviter les problèmes. Sinon, vous devrez peut-être utiliserPUSHD \\ServerName\ShareName
au début du processus par lots, puis utiliserPOPD
à la fin du processus par lots. Vous pouvez mapper le lecteur avecNET USE X: \\ServerName\ShareName
au début du traitement par lots, puis déconnecter le lecteur avecNET USE X: /DELETE
à la fin du traitement par lots.AUTRES
MS HOTFIX (KB977353): L'élément de préférence Tâche de stratégie de groupe immédiate ne s'exécute pas sur un ordinateur client qui exécute Windows 7 ou Windows Server 2008 R2
Regardez l'
Settings
onglet de la tâche planifiée et l'option répertoriée commeStop the task if it runs longer than:
. Si cette option est cochée et que la période est inférieure à un script en cours d'exécution, le Planificateur de tâches le tuera tôt et vous risquez donc de ne pas obtenir les résultats attendus. C'est autre chose à vérifier lors du dépannage au cas où.Dans l'
Triggers
onglet de la tâche planifiée lorsque vous sélectionnez l'Edit
option, assurez-vous de définir l'Start:
heure et la date d'une valeur qui n'est PAS déjà transmise. Assurez-vous que la date et l'heure sont définies sur celles d'une valeur future . Sinon, vous remarquerez peut-être que le travail indique qu'il est prévu de s'exécuter à la prochaine heure planifiée comme prévu; cependant, il n'est pas exécuté par le Planificateur de tâches et l' onglet Planificateur de tâches neHistory
montre pas qu'il est jamais exécuté (car ce n'est pas le cas). Modifiez simplement le déclencheur et mettez-le à jour avec une date et / ou une heure futures pour résoudre ce problème si vous le rencontrez.ÉCRANS D'IMPRESSION
Écran d'impression A
Écran d'impression B
Écran d'impression C
la source