'2015 01 19 'Lancez ce .vbs de préférence avec cscript.exe //Nologo 'Ainsi la première ligne récupérée sera la effectivement la première générée par lexe qui sera lancé (et pas autre chose comme "Microsoft (R) Windows Script Host Version 5.8") Dim ObjShell, ObjExec, Commande, PIDMonExe, UneLigneDeResultat, NumeroLigneResultat Dim VarComputername Dim Position Dim LigneAvecResultatQLoad Commande = "qfarm.exe /load" Set ObjShell = CreateObject("WScript.Shell") Set ObjExec = ObjShell.Exec(Commande) 'Lancement de l'exe PIDMonExe = ObjExec.ProcessID 'Récupération du PID de l'exe VarComputername = ObjShell.ExpandEnvironmentStrings ( "%COMPUTERNAME%" ) 'Récupération du résultat affiché par l'exe NumeroLigneResultat = 0 LigneAvecResultatQLoad = "" Do While Not ObjExec.StdOut.AtEndOfStream NumeroLigneResultat = NumeroLigneResultat + 1 UneLigneDeResultat = ObjExec.StdOut.ReadLine() 'On récupère une ligne générée par l'exe If Len(UneLigneDeResultat) > 0 Then Position = Instr(1, UneLigneDeResultat, VarComputername, 1) If Position = 1 Then 'Si le nom de l'ordinateur a été trouvé en début de ligne (en position = 1) LigneAvecResultatQLoad = UneLigneDeResultat 'On stocke la ligne et on sort de la boucle qui analyse le résultat affiché par l'exe Exit Do End If End If Loop If Len(LigneAvecResultatQLoad) > 0 Then 'Si on a bien récupéré a ligne contenant la charge de notre serveur Citrix LigneAvecResultatQLoad = Mid(LigneAvecResultatQLoad, Len(VarComputername) + 1) 'On retire le nom de l'ordinateur de la ligne LigneAvecResultatQLoad = Trim(LigneAvecResultatQLoad) 'On supprime les espaces avant et après Wscript.echo LigneAvecResultatQLoad 'On affiche le résultat, soit la charge du serveur citrix sur lequel on se situe End If 'Wscript.echo "Exe terminé" Set ObjExec = Nothing Set ObjShell = Nothing