Voilà ce que j'ai trouvé
Citation :
Début du script qui lance le MSI
Partie du script qui fait une pause lors de l'éxecution du MSI
--------------------------------------------------------------------
Dim MSI
Set Otest = GetObject("WinMgmts:{impersonationLevel=impersonate}" )
Wscript.sleep 2000
While MSI <> 1
Wscript.sleep 1000
MSI = 0
Set test=Otest.ExecQuery("Select * from Win32_Process" )
For Each valeur In test if valeur.name = "msiexec.exe" then
MSI = MSI + 1
end if
Next
Wend
--------------------------------------------------------------------
Poursuite du script...
|
Simplement une chose...
On peut s'apercevoir que la partie de la boucle While tourne tant que MSI est <> de 1. Au début j'avais mis 0 mais ça ne marchait pas...
Effectivement, lors de l'éxecution du MSI, msiexec.exe est lancé deux fois dans les processus :
- une fois par l'utilisateur (qui lance le script)
- une deuxième fois par le System
A la fin de l'éxecution du MSI, le msiexec.exe lancé par l'utilisateur se ferme automatiquement mais celui du System reste actif. D'ou le 1 dans la boucle while...
Est-ce normal que System ne ferme pas le msiexec.exe qu'il a ouvert ? Il reste en mémoire mais n'est plus utilisé par le processeur...
Merci à jpcheck pour l'aide apportée ci-dessus.