Au lieu d'attendre que le service soit créé, pourquoi ne pas attendre simplement la fin de l'installation du patch ?
Les fonctions que j'ai posté sur le forum US ont la particularité d'être très lentes.
Mettre
_WMIService_Get() dans une boucle, c'est possible mais un peu lent.
Un truc tout bête qui permet de savoir si un service existe est de regarder directement dans la base de registre (en se basant sur le nom court du service) dans
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
Code : Tout sélectionner
$oShell=ObjCreate("shell.application")
$sServiceName = "AdobeFlashPlayerUpdateSvc"
; On arrête le service s'il est lancé (s'il n'existe pas, ça fait rien)
if $oShell.IsServiceRunning($sServiceName) then $oShell.ServiceStop($sServiceName,false)
; On lance l'installation du patch....
; ...
; On attend que le service soit créé
While RegRead("HKLM\SYSTEM\CurrentControlSet\services\" & $sServiceName, "DisplayName") <> ""
Sleep(100)
WEnd
; Et on lance le service
$oShell.ServiceStart($sServiceName,false)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !