bonjour,
SOS j'utilise ce script si dessous pour surveiller l'espace disk mais il me reste un problème
c'est a dire si j'ai un serveur qui a un disk A, B et C et pour X raison sur un des disk,il est offline ou déconnecté, il ne me le signale pas!
avez vous une idée comment je pourrais absolument contrôler ces 3 disks sur mon serveur et que si il y en a un qui est absent ou autre ,le script se plante.
pourriez vous m'aider s'il vous plait ?
d'avance MERCI
le null (fabrice)
On Error Resume Next
'================================================================================================
'Constantes pour le réglage des alarmes surveillance disk
Const LimiteLecteurSysteme = 0.05 'décimales >> Le seuil d'alerte pour le disque systéme 0.05 = 5%
Const LimiteLecteurAutre = 0.04 'décimales >> Le seuil d'alerte pour les autres disques physiques (pas les netuse par exemple) 0.05 =5%
Const UnitDeSortie = "\\FRSP0204\production\Cmd-sys\travail\" '>> Unité de sortie avec path
Const UnitDeSortie1 = "\\FRSP0204\production\Cmd-exp\travail\" '>> Unité de sortie avec path pour CTRL
Const FichierDeSortie = "DiskInfo.txt" '>> Le fichier de log
Const FichierDeSortie1 = "Liste-Ctrl.txt" '>> Le fichier pour le CTRL
Const NomDeMachine = "FRSB0002" 'Mettre un . pour la machine locale
Const SurveilleDisk = 1 '>> Activer/Désactiver la surveillance des disques (1 ou 0)
Const Taux = 100
'================================================================================================
'Déclarations
Const ForAppending = 8
Const cdoSendUsingPort = 2
Const ForReading = 1
Const ForWriting = 2
Dim fso, f1, OutputLine
Dim ofso, fic, texte, fe
Set SC = New SpaceChecker
Set SC = Nothing
Citation :
Citation :
Alarme = 0
Class SpaceChecker
Private Sub Class_Initialize()
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & NomDeMachine & "\root\cimv2" )
Set colSettings = WMIService.ExecQuery ("Select * from Win32_ComputerSystem" )
For Each objComputer in colSettings
SystemName = objComputer.Name
Domain = objComputer.Domain
Next
Set colSettings = Nothing
Set fso = CreateObject("Scripting.FileSystemObject" )
'Set f1 = fso.CreateTextFile(FichierDeSortie, false)
'f1.close
Set f1 = fso.OpenTextFile(UnitDeSortie & SystemName & "_" & FichierDeSortie, ForAppending, true,0)
OutputLine = SystemName
If SurveilleDisk = 1 Then
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & NomDeMachine & "\root\cimv2" )
Set colDisks = WMIService.ExecQuery("Select * from Win32_LogicalDisk" )
For each Disk in colDisks
If Disk.DriveType = 3 Then
If Lcase(Disk.DeviceID) = "D:" Then
LimiteLecteur = LimiteLecteurSysteme
Else
LimiteLecteur = LimiteLecteurAutre
End If
If (Disk.FreeSpace/Disk.Size) < LimiteLecteur Then
HddStatut="ALERTE - de (" & Taux*LimiteLecteur & "% Seuil d'alerte) "
Else
HddStatut="Normal + de (" & Taux*LimiteLecteur & "% Seuil d'alerte) "
End If
OutputLine = OutputLine & VbCrLf & VbCrLf & HddStatut & "Espace libre sur " & Disk.DeviceID & "/" & (Disk.FreeSpace/1000000) & " Mo Sur un total de " & (Disk.Size/1000000) & " Mo" & VbCrLf
End If
Next
End If
f1.writeline OutputLine
f1.Close
Set colDisks = Nothing
Set WMIService = Nothing
End Sub
End Class
'extrait la 1er ligne du fichier pour le CTRL
Set WshShell = WScript.CreateObject("WScript.Shell" )
Set ofso = CreateObject("Scripting.FileSystemObject" )
Set fic = ofso.OpenTextFile(UnitDeSortie & NomDeMachine & "_" & FichierDeSortie,1)
Set fe = ofso.OpenTextFile(UnitDeSortie1 & FichierDeSortie1,ForAppending,ForWriting,true)
fe.write(fic.ReadLine & vbCrLf)
fe.Close
---------------
Merci
---------------
Merci