TUTOS.EU

Récupérer le qfarm /load d'un serveur Citrix en vbs

Comment récupérer la charge d'un serveur en VbScript

'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
Lien vers le fichier : cliquez ici Copier le code

Article(s) en relation(s)

2