OVH Cloud OVH Cloud

Connaître la fin de l'exécution d'un script distant

5 réponses
Avatar
Machine
Bonjour,

Je dois exécuter un script batch sur un serveur distant, le pb est que la
durée d'exécution peut varier en fonction de certaines données et il faut que
je vérifie si le script s'est bien exécuté. Le problème est justement qu'il
faut que j'attende que le script ait fini de s'exécuter. Quelqu'un aurait-il
une idée ?

Merci d'avance

5 réponses

Avatar
Sylvain
Est-ce un script .vbs ou un batch .bat ou .cmd ???


-----Message d'origine-----
Bonjour,

Je dois exécuter un script batch sur un serveur
distant, le pb est que la

durée d'exécution peut varier en fonction de certaines
données et il faut que

je vérifie si le script s'est bien exécuté. Le
problème est justement qu'il

faut que j'attende que le script ait fini de
s'exécuter. Quelqu'un aurait-il

une idée ?

Merci d'avance
.



Avatar
Machine
C'est un script .bat mais au pire je peux l'inclure dans un vbs en faisant un
RUN mais il faut impérativement que je sache quand il est fini. J'ai voulu
essayer la solution avec l'objet wshcontroller mais je n'arrive qu'à le faire
en local, pourtant j'ai fait la fameuse commande wscript -regserver et updaté
la registry mais rien n'y a fait, j'ai un permission denied même en étant
admin du poste distant. Au pire si quelqu'un connaît un programme (même
payant) qui lance un script à distance, qui attend la fin de l'exécution de
ce script et qui me renvoi un code de retour je suis preneur.

En attendant, je cherche inlassablement sur le net ;-)

Merci encore


Est-ce un script .vbs ou un batch .bat ou .cmd ???


-----Message d'origine-----
Bonjour,

Je dois exécuter un script batch sur un serveur
distant, le pb est que la

durée d'exécution peut varier en fonction de certaines
données et il faut que

je vérifie si le script s'est bien exécuté. Le
problème est justement qu'il

faut que j'attende que le script ait fini de
s'exécuter. Quelqu'un aurait-il

une idée ?

Merci d'avance
.






Avatar
Georges MAUREL
Bonjour
Peut-être en utilisant un vba avec RUN.
Le troisième paramètre permet d'indiquer qu'il faut attendre que le
processus lancé soit fini avant de continuer.
Voici un exemple :
Set WshShell = WScript.CreateObject("WScript.Shell")
retour = WshShell.Run("notepad ", 1, true)
wscript.echo("fini")

Cordialement
Georges MAUREL


"Machine" a écrit dans le message de
news:
C'est un script .bat mais au pire je peux l'inclure dans un vbs en faisant
un

RUN mais il faut impérativement que je sache quand il est fini. J'ai voulu
essayer la solution avec l'objet wshcontroller mais je n'arrive qu'à le
faire

en local, pourtant j'ai fait la fameuse commande wscript -regserver et
updaté

la registry mais rien n'y a fait, j'ai un permission denied même en étant
admin du poste distant. Au pire si quelqu'un connaît un programme (même
payant) qui lance un script à distance, qui attend la fin de l'exécution
de

ce script et qui me renvoi un code de retour je suis preneur.

En attendant, je cherche inlassablement sur le net ;-)

Merci encore


Est-ce un script .vbs ou un batch .bat ou .cmd ???


-----Message d'origine-----
Bonjour,

Je dois exécuter un script batch sur un serveur
distant, le pb est que la

durée d'exécution peut varier en fonction de certaines
données et il faut que

je vérifie si le script s'est bien exécuté. Le
problème est justement qu'il

faut que j'attende que le script ait fini de
s'exécuter. Quelqu'un aurait-il

une idée ?

Merci d'avance
.








Avatar
Machine
En fait merci mais j'ai trouvé exactement ce qu'il me fallait ça s'appelle
psexec, c'est en ligne de commande et je le conseil vraiment à tout le monde


Bonjour
Peut-être en utilisant un vba avec RUN.
Le troisième paramètre permet d'indiquer qu'il faut attendre que le
processus lancé soit fini avant de continuer.
Voici un exemple :
Set WshShell = WScript.CreateObject("WScript.Shell")
retour = WshShell.Run("notepad ", 1, true)
wscript.echo("fini")

Cordialement
Georges MAUREL


"Machine" a écrit dans le message de
news:
C'est un script .bat mais au pire je peux l'inclure dans un vbs en faisant
un

RUN mais il faut impérativement que je sache quand il est fini. J'ai voulu
essayer la solution avec l'objet wshcontroller mais je n'arrive qu'à le
faire

en local, pourtant j'ai fait la fameuse commande wscript -regserver et
updaté

la registry mais rien n'y a fait, j'ai un permission denied même en étant
admin du poste distant. Au pire si quelqu'un connaît un programme (même
payant) qui lance un script à distance, qui attend la fin de l'exécution
de

ce script et qui me renvoi un code de retour je suis preneur.

En attendant, je cherche inlassablement sur le net ;-)

Merci encore


Est-ce un script .vbs ou un batch .bat ou .cmd ???


-----Message d'origine-----
Bonjour,

Je dois exécuter un script batch sur un serveur
distant, le pb est que la

durée d'exécution peut varier en fonction de certaines
données et il faut que

je vérifie si le script s'est bien exécuté. Le
problème est justement qu'il

faut que j'attende que le script ait fini de
s'exécuter. Quelqu'un aurait-il

une idée ?

Merci d'avance
.













Avatar
Jacques Barathon [MS]
"Machine" wrote in message
news:
En fait merci mais j'ai trouvé exactement ce qu'il me fallait ça s'appelle
psexec, c'est en ligne de commande et je le conseil vraiment à tout le
monde


En effet, psexec est un très bon outil. Sinon, d'une manière générale tu
peux synchroniser plusieurs scripts entre eux quel que soit leur langage et
qu'ils soient exécutés sur une même machine ou pas, en utilisant un principe
très simple: une fois qu'il a fini ses tâches un script n'a plus qu'à créer
un fichier "bidon" dont la présence signifie simplement qu'il a fini, ou
même qu'il en est à un point particulier de son déroulement (pas forcément
la fin). Un script ayant besoin d'attendre ce point de synchro n'aura donc
qu'à tester la présence du fichier pour savoir quand continuer ses propres
tâches.

Pour rester "propre" il faudrait que le script qui vérifie la présence du
fichier supprime ce fichier une fois qu'il l'a détecté. Le problème peut se
poser si plusieurs scripts doivent pouvoir se synchroniser avec le script
initial. Si on veut généraliser ce système (un peu bricolé mais qui marche
très bien) on peut envisager l'utilisation d'un partage que l'on purgera
régulièrement. Il est également utile de prévoir dès le début du script
initial le test de présence du fichier de synchro et sa suppression le cas
échéant.

Jacques