Pb pour afficher IE sur machine distante [remote scripting] - VB/VBA/VBS - Programmation
Marsh Posté le 19-04-2006 à 12:03:37
up, j'ai le meme problème ...
c'est un programme qui execute le code vb, si le programme est lancé dans une fenetre 'dos', cela fonctionne, si c'est un service, rien ne s'affiche ...
merci si quelqu'un trouve
Marsh Posté le 02-03-2006 à 19:32:06
Aux experts en windows scripting,
voila un pb épineux sur lequel je galère depuis un bon moment. En quelques mots, je souhaiterais, depuis un script éxécuté sur un serveur, lancé un second script sur une machine distante. Jusque là, aucun PB, tout baigne, WSH offre tout ce qu'il faut, sauf que dans ce cas, dans le second script, j'instancie un objet Internet.Explorer(IE) et bien que l'instanciation réusisse, je n'arrive pas à afficher la fenêtre IE.
J'ai déjà tordu le PB dans tous les sens, utilisé un composant wsc enregistré en bonne et due forme pour gérer IE, essayé avec HTA, ect, ect, dans tous les cas le second script s'éxécute bien sur la machine distante, je peux le débogguer, mais en aucun cas, je n'arrive à afficher IE.
Le + étrange est qu'en local, machine serveur = machine distante, la fenêtre s'affiche sans broncher !!?
Voici quelques points clés des différents scripts utilisés :
1) commande que je lance depuis le serveur :
wscritp //D //X rscript.wsf /h "nomMachineDistante" /p:"chemin+nomDuScriptExecuteLocalement.wsf"
rscript.wsf :
...
'initializate the execution of the script on the target host
set o_process = o_wsh_ctler.CreateScript(s_cmdLine, o_dict_hosts.item(i))
'connection succeeds
if err = 0 then
'connect to the remote script to catch errors
wscript.ConnectObject o_process, "o_process_"
o_process.Execute
'pooling till the end of the process execution
While o_process.Status <> 2
wscript.Sleep 100
WEnd
'disconnect from the remote script
wscript.DisconnectObject o_process
s_cmdLine : chemin & nom du script à lancer
o_dict_hosts.item(i) : nom de la machine sur laquelle lancer le script
script éxécuté localement :
...
'Instantiate an object IE
set oIE = createObject("InternetExplorer.Application" )
'Initializate this object
oIE.navigate ""& sScriptPath" & "svgauto.htm" & ""
oIE.width = 400
oIE.height = 380
oIE.toolBar = 0
oIE.menuBar = 0
oIE.statuBar = 0
'Wait till IE is ready
do
wscript.sleep 100
loop while oIE.busy = 1
oIE.visible = true
Quand ce script est lancé par un autre script depuis une autre machine, la ligne oIE.visible, n'a strictement aucun effet alors que toutes les autres propriétés, width, height, ect sont accessibles en écriture.
Etonnant non ?
Je pense que DCOM qui est utilisé par WSH derrière tous ces mécanismes de remote scripting est à l'origine de mon PB mais comment m'en défaire ?
Coté sécurité, tout a été vérifié, la machine serveur a le même compte administrateur que la machine distante.
Une idée ?
Merci d'avance