Exécution tache différée

cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005 - 11 mai 2005 à 22:58
cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005 - 13 mai 2005 à 12:20
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

BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009
11 mai 2005 à 23:13
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
0
cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005
11 mai 2005 à 23:19
'Variable recevant l'objet WScript.Shell



cette variable c'est quoi ?? c'est le numéro de PC???
0
cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005
11 mai 2005 à 23:21
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 ;-)
0
BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009
11 mai 2005 à 23:22
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 ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005
11 mai 2005 à 23:29
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
0
BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009
11 mai 2005 à 23:41
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 :)
0
cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005
11 mai 2005 à 23:51
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
0
BaFM Messages postés 64 Date d'inscription mercredi 24 juillet 2002 Statut Membre Dernière intervention 26 novembre 2009
12 mai 2005 à 00:00
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...
0
cirilovb Messages postés 6 Date d'inscription dimanche 24 avril 2005 Statut Membre Dernière intervention 13 mai 2005
13 mai 2005 à 12:20
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.
0
Rejoignez-nous