Connaître la fin de l'exécution d'un script distant
5 réponses
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 ?
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 ???
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 ???
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 ???
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 ???
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" <Machine@discussions.microsoft.com> a écrit dans le message de
news:47999EC6-611A-47B9-B866-17AF1DE60DD2@microsoft.com...
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 ???
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 ???
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 ???
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" <Machine@discussions.microsoft.com> a écrit dans le message de
news:47999EC6-611A-47B9-B866-17AF1DE60DD2@microsoft.com...
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 ???
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 ???
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
"Machine" <Machine@discussions.microsoft.com> wrote in message
news:294C6CEA-FA29-4DC3-B4A6-EB18FF738E32@microsoft.com...
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.
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.