Pour ceux que ça interesse j'ai trouvé une façon detournée sans passer par une requete wql....
J'ai trouvé comment compter le nombre de session qui ont des fichiers ouvert sur un serveur Windows 2000 / 20003.
Le script que j'ai écrit est à la base pour le plugin NSCLIENT++ de Nagios... c'est pour cela qu'a la fin je mets des conditions en fonction du résultat obtenu.
Les lignes qui commencent par REM sont des lignes commentées.Si on enleve ces commentaires on aura le nom d'utilisateur, l'ip ... en sortie
Pour utiliser ce script, il faut l'enregistrer avec l'extension .wsf
Pour l'utiliser il faut mettre les arguments du seuil warning et critique
Exemple: NbSessions.wsf <arg1> <arg2>
Arg1 et Arg2 doivent des chiffres (nb de sessions). Arg1 pour le seuil warning et Arg2 pour le seuil critique
Pour l'executer il faut utiliser l'invite de commande.
En esperant qu'il serve a quelqu'un un jour....
Code :
- <job>
- <script language="VBScript">
- strComputer = "."
- strWarningValue = Wscript.Arguments(0)
- strCriticalValue = Wscript.Arguments(1)
- SessionCount = 0
- Const intOK = 0
- Const intWarning = 1
- Const intCritical = 2
- Dim objComputer, objSession
- Set objComputer = GetObject("WinNT://" & strComputer & "/LanManServer" )
- For Each objSession in objComputer.Sessions
- REM strOutput = strOutput & "Session Object Name: "& objsession.Name & vbCrlf
- REM strOutput = strOutput & "Session Computer Name: "& objsession.Computer & vbCrlf
- SessionCount = SessionCount + 1
- REM strOutput = strOutput & "Seconds connected: " & objSession.ConnectTime & vbCrlf
- REM strOutput = strOutput & "Seconds Idle: "& objsession.IdleTime & vbCrlf
- REM strOutput = strOutput & "Connected User:"& objsession.USer & vbCrlf
- REM strOutput = strOutput & vbCrlf
- Next
- SessionCount = Int(SessionCount)
- strWarningValue = Int(strWarningValue)
- strCriticalValue = Int(strCriticalValue)
- If ( SessionCount > strWarningValue ) or ( SessionCopunt > strCriticalValue ) Then
- If (SessionCount > strCriticalValue) Then
- Wscript.Echo "CRITICAL: NB of Sessions is " & SessionCount & "."
- Wscript.Quit(intCritical)
- End If
- If (SessionCount > strWarningValue) Then
- Wscript.Echo "WARNING: NB of Sessions is " & SessionCount & "."
- Wscript.Quit(intWarning)
- End If
- End If
- Wscript.Echo "OK: NB of Sessions is " & SessionCount & "."
- Wscript.Quit(intOK)
- </script>
- </job>
|
Message édité par alexolait le 12-10-2007 à 11:24:45