Exécution tache différée

Signaler
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005
-
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005
-
Salut, je débute totale en autodidacte sous vb,



Je tatonne et j'essaie d'optimiser un peu des choses que je fais en
entreprise pour bouger le moins possible de mon fauteuil lol.



Je souhaite exécuter un exe (winvnc.exe) sur un PC distant afin de
prendre la main à distance sur un PC d'agence distante. Je souhaite au
lieu de faire un net time sur le PC voulu et utiliser la commande AT
pour planifier ma tache, qu'elle se lance automatiquement 10 sec après
avoir entrer dans mon VBS ou BAT ou mix entre les deux le numéro
du PC.



Pas bien compliqué pour des connaisseurs je suppose ;-)



Voila cque j'ai commencé a faire mais rien de bien fameux.

Le pb de ce que j'ai commencé à faire est que ce n'est pas
l'heure sur le PC distant qui est prise en compte, a savoir que mon
heure sur mon poste n'est pas la même à la seconde prêt de tous les
autres postes distant..



Dim today

Dim answer

today =Now

answer = today.AddSeconds(10)

Dim reponse

reponse = InputBox("Entrez le numero de PC sur lequel vous voulez prendre la main")

SCHTASKS /CREATE /TN vnc /TR C:\vncviewer.exe /sc once /st today /s PC32



j'ai un message d'erreur a la dernière ligne, surement car je n'ai pas créé l'objet SCHTASKS.



Jvous remercie de m'éclairer sur ce point, et merci de votre patience.

9 réponses

Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

Il te faut ces lignes pour pouvoir exécuter une commande :

Dim WshShell 'Variable recevant l'objet WScript.Shell
Set WshShell = CreateObject("WScript.Shell") 'Création de l'objet
WshShell.Exec("SCHTASKS /CREATE /TN vnc /TR C:\vncviewer.exe /sc once /st " & today & " /s PC32") 'Exécution de la commande.

Et voilà, ca exécute ta commande comme il faut :)

MyGoddess
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005

'Variable recevant l'objet WScript.Shell



cette variable c'est quoi ?? c'est le numéro de PC???
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005

a non C des explication en vert,



lol



je débute vraiment, jvais tenter de m'en sortir avec ça même si jcomprends pas encore tout ;-)
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

Non, c'est juste pour stocker l'objet système qui te permet d'exécuter des commandes.
Regarde la doc sur http://download.microsoft.com/, cherche windows script host documentation v5.6
Ce sera en anglais mais c'est très complet ;)
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005

ok,



j'ai modif mon script; yavait une erreur je crois juste dans l'heure d'exec de la tache, c'était answer au lieu de today ;-)



voila mon VBS, mais j'ai une erreur



Dim today

Dim answer

today =Now

answer = today.AddSeconds(10)

Dim reponse

reponse = InputBox("Entrez le numero de PC sur lequel vous voulez prendre la main")

Dim WshShell

Set WshShell = CreateObject("WScript.Shell")

WshShell.Exec("SCHTASKS /CREATE /TN vnc /TR C:\vncviewer.exe /sc once /st " & answer & " /s PC32")



ou est elle??? on peut pas utiliser NOW si??? après maintenant il est déja trop tard non ??? lol
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

Dim answer
answer = DateAdd("s", 10, Now)

Voilà comment tu peut calculer le nouveau temps. Aide toi du fichier d'aide don je t'es donnée le chemin pour y aller :)
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005

eee, ba, regarde "mon" script



Dim reponse

reponse = InputBox("Entrez le numero de PC sur lequel vous voulez prendre la main")

Dim today

today = Now

Dim answer

answer = DateAdd("s", 10, Now)

Dim WshShell

Set WshShell = CreateObject("WScript.Shell")

WshShell.Exec("SCHTASKS /CREATE /TN vnc /TR C:\vncviewer.exe /sc once /st " & answer & " /s & reponse")



ça lance po vncviewer, essaie avec une exe chez toi pour voir, C un
script générique, change juste l exe ;-) et fais moi signe si tu arrive
a qqchose



Merci
Messages postés
64
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
26 novembre 2009

J'ai fait ca :

Dim WshShell 'Variable recevant l'objet WScript.Shell
Set WshShell = CreateObject("WScript.Shell") 'Création de l'objet
WshShell.Exec("notepad prout.txt") 'Exécution de la commande

et ca fonctionne tout seul... Peut être qu'il ne trouve pas le fichier SCHTASKS...
Messages postés
6
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
13 mai 2005

Bon, j'ai trouvé mais je fait tout autrement.



Pour ceux que ça intéresse, j'utilise la commande Psexec du kit Pstools.

Avec l'option -i ça exécute le fichier voulu sur le PC distant comme si on cliquait dessus, c'est vraiment terrible.



Dans mon .bat, je voudrais lancer vncviewer sur mon poste puis
lancer la commande Psexec pour lancer winvnc.exe sur le poste distant.



Mais le fait que vncviewer se lance sur mon poste bloque la commande
Psexec qui suite dans mon batch. Je suis contraint de fermer la fenêtre
de vncviewer pour que le batch execute la suite du bacth



Comment, passer (dans un batch)à la deuxième commande directement une fois que le première est lancer?



Merci.