web-dev-qa-db-fra.com

Planificateur de tâches Windows Exécuter VBScript

J'essaie d'automatiser un script VBScript à l'aide du planificateur de tâches Windows. Cependant, j'ai essayé d'utiliser cscript.exe + "C:\...\script.vbs" mais cela n'a pas fonctionné. J'ai également essayé d'exécuter directement la même commande dans CMD (cscript.exe "C:\...\script.vbs") et cela a fonctionné.

Quel pourrait être le problème?

MODIFIER :

Je viens d'essayer de passer le paramètre à "Run only when user is logged on" à partir de "Run whether user is logged on or not" et cela a fonctionné. Je me demande s’il est possible de faire en sorte que ma tâche soit exécutée même lorsque l’utilisateur est déconnecté.

5
lovechillcool

Après des heures de recherche, un des blogs de Blake Morrison (de Microsoft) a été publié; il a mentionné que 

Si vous exécutez un script .vbs/.ps1, essayez de le lancer à partir d'un script .cmd/.bat

voir Aide! Ma tâche planifiée ne s'exécute pas…

Ce blog explique également de nombreuses règles/astuces lors de l'utilisation du Planificateur de tâches.

Créez donc un fichier .cmd/.bat qui appelle votre script VBScript. Par exemple: cscript.exe YourScript.vbs serait dans votre script .cmd/.bat.

3
lovechillcool

Ecrivez un fichier batch comme ceci:

echo "Started!" > c:\foldergoeshere\log.txt
cscript.exe "C:\...\script.vbs" > c:\foldergoeshere\log.txt
echo "Stopped!" > c:\foldergoeshere\log.txt

Planifiez ensuite le fichier de commandes au lieu du fichier vbs. Cela vous permettra de voir ce qui se passe qui l'empêche de fonctionner. Toute erreur que vous auriez vue en train de s'exécuter dans la console (CMD) sera à la place générée dans ce fichier journal entre "Démarré!" et "arrêté!"

3
Jen R

Greg a répondu à cette question https://superuser.com/a/816073

Fondamentalement, vous devez créer 2 dossiers:

Vous devez créer un dossier (ou deux sur une fenêtre 64 bits):

(32 bits, toujours) C:\Windows\System32\config\systemprofile\Desktop

(64 bits) C:\Windows\SysWOW64\config\systemprofile\Desktop

Correction du problème pour moi (et je pouvais pointer sur le fichier .vbs, pas besoin de batte).

1
Curtis

De quoi s'agit-il? Je n'utilise pas .cmd/.bat et le script fonctionne! (Windows7 ici)
Mon script VBS (en tant que tâche planifiée) s’exécute correctement dans tous les scénarios de ce type 4:

  1. c script et option "Exécuter uniquement lorsque l'utilisateur est connecté"
  2. c script et option "Exécuter si l'utilisateur est connecté ou non"
  3. w script et option "Exécuter uniquement lorsque l'utilisateur est connecté"
  4. w script et option "Exécuter si l'utilisateur est connecté ou non"

Ce n'est que sur le 1er scénario que je rencontre la fenêtre de commande noire clignotant sur mon écran.

Paramètres d'action:

cscript
ou
wscript

Mon script, qui crée simplement un fichier:

Set objFSO = CreateObject("Scripting.FileSystemObject")
filename = "C:\Temp\" & Hour(Time) & Minute(Time) & Second(Time)
Set objFile = objFSO.CreateTextFile(filename)
1
ZygD

Le fichier .vbs s'exécute de manière invisible, ce qui est une conséquence de son exécution avec l'option "connecté ou non".

Vous ne serez pas autorisé à interférer avec un utilisateur utilisant l'ordinateur , ce qui signifie que vous pourrez vous aider, mais pas les autres.

Veuillez lire le texte suivant dans le menu Aide du planificateur de tâches:

Contexte de sécurité de la tâche

Vous pouvez spécifier qu'une tâche doit être exécutée même si le compte sous lequel la tâche doit être exécutée n'est pas connecté lorsque la tâche est déclenchée. 

Pour ce faire, sélectionnez le bouton radio intitulé Exécuter si l'utilisateur est connecté ou non. 

Si ce bouton radio est sélectionné, les tâches ne seront pas exécutées de manière interactive. 

Pour exécuter une tâche de manière interactive, sélectionnez le bouton radio Exécuter uniquement lorsque l'utilisateur est connecté. 

1
Trigger

Avoir constaté à plusieurs reprises qu'une tâche VBScript exécutée comme prévu avait bien fonctionné pendant des mois et des années mais ne fonctionnait plus du tout malgré que rien ne soit changé. J'ai essayé de réactiver la tâche en utilisant toutes les recettes données ici et ailleurs, mais sans succès. Ma solution de contournement consistait à créer une tâche nouveau / planifiée avec tous les paramètres copiés à partir de la tâche d'origine.

0
Markus