MOM 2005 : Script pour tester la reponse au ping

 
Ce script permet de tester la réponse d’un groupe de  device au ping, défini par une plage d’adresse IP
et compare les temps de réponse par rapport à un seuil de latence
 
 
 
 
‘*******************************************************************************************
‘ script :   TestPingMOM.vbs
‘ version :   1.0
‘ Auteur :   JF BERENGUER

‘ Objet :   Tests de connectivité via ping et analyse de la moyenne
‘     des temps de réponse

‘ Méthode :   Utilise Win32_PingStatus pour lancer le ping
‘     génère des evts 100 (info), 200, (avert) et 300, (erreur) en fonction du résultats

‘ Configuration : IntBoucle = Nombre de ping envoyés
‘     IntSeuiLantence = Seuil toléré pour la moy des temps de réponse en ms
‘     Ajout d’adresses cibles : insérer des lignes ArrListeIP(i) = @IP

‘ Utilisation :  evenement chronometre dans MOM

‘*******************************************************************************************
 
Option Explicit
Dim strHost
Dim IntTempsRep
Dim IntBoucle
Dim IntSeuilLatence
Dim ArrListeIP (8)
Dim IntIndice
‘******  Déclaration des constantes  *****
Const EVENT_TYPE_SUCCESS = 0
Const EVENT_TYPE_ERROR   = 1
Const EVENT_TYPE_WARNING = 2
Const EVENT_TYPE_INFORMATION = 4
Const EVENT_TYPE_AUDITSUCCESS = 8
Const EVENT_TYPE_AUDITFAILURE = 16
‘******  Initialisation du test  *****
IntNbPing = 4
IntSeuilLatence = 2
ArrListeIP(0) = "192.168.1.101"
ArrListeIP(1) = "192.168.1.102"
ArrListeIP(2) = "192.168.1.103"
ArrListeIP(3) = "192.168.1.104"
ArrListeIP(4) = "192.168.1.105"
ArrListeIP(5) = "192.168.1.106"
ArrListeIP(6) = "192.168.1.107"
ArrListeIP(7) = "192.168.1.108"
 
 
For IntIndice = 0 To UBound(ArrListeIP)-1
 strHost = ArrListeIP(IntIndice)
 IntTempsRep = Ping(strHost,IntNbPing)
  if IntTempsRep < CInt(IntSeuilLatence) then
     CreateEvent 100,EVENT_TYPE_SUCCESS,"TestPing",strHost & " contacté, temps de réponse moyen OK : " & IntTempsRep
 
 Else
     if IntTempsRep <  9999 then
     CreateEvent 200,EVENT_TYPE_WARNING,"TestPing",strHost & " contacté, temps de réponse moyen dépassé : " & IntTempsRep
    
     Else 
      CreateEvent 300,EVENT_TYPE_ERROR,"TestPing",strHost & " test échoué, temps de réponse moyen : " & IntTempsRep
      
     End if 
 End if
Next
 
‘******  Fonctions  *****
Function Ping(strAdrIP, IntBoucle)

‘ But :   exécuter ping vers l’adresse IP passée en paramètre
‘    le nombre de ping est le second paramètre

‘ Arguments : adresse IP sous la forme d’une chaîne de caractère

‘ Retour :  moyenne des temps de réponse en ms
    dim objPing, objRetStatus, i, IntResult
 IntResult = 0
 For i=1 To IntBoucle
     set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
       ("select * from Win32_PingStatus where address = ‘" & strAdrIP & "’")
     for each objRetStatus in objPing
         if IsNull(objRetStatus.StatusCode) or objRetStatus.StatusCode<>0 then
     IntResult = IntResult + 9999
 
         else
             IntResult = IntResult + objRetStatus.ResponseTime
‘           
         end if
     Next
    Next
    Ping = IntResult/IntBoucle 
End Function
 
‘******  Procédures  *****
Sub CreateEvent(intEventNumber,intEventType,strEventSource,strEventMessage)

‘ But :   Créer un évènement MOM

‘ Arguments : No event, type, source, message, nom du device

‘ Retour :  n/a
Dim objEvent
 
    Set objEvent = ScriptContext.CreateEvent()
    objEvent.EventSource = strEventSource
    objEvent.EventNumber = intEventNumber
    objEvent.EventType = intEventType
    objEvent.Message = strEventMessage
    ScriptContext.Submit objEvent
End Sub
 
Publicités