script d'avertissement auto pour disque plein episode 2

script d'avertissement auto pour disque plein episode 2 - Disque dur - Hardware

Marsh Posté le 27-02-2020 à 10:45:57    

bonjour,
 
SOS  :hello:  :hello:  :hello:  :hello:  j'utilise ce script si dessous pour surveiller l'espace disk mais il me reste un problème :fou:  :cry:  
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 :
 

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
Reply

Marsh Posté le 27-02-2020 à 10:45:57   

Reply

Marsh Posté le 27-02-2020 à 11:40:03    

J’ai découvert il ya peut le power shell. Tu devrais essayer c’est franchement plus puissant que le vbscript

 

Cela dit pas sûr que ton topic soit sur le bon forum. La partie programmation sera plus indiquée je pense


Message édité par Z_cool le 27-02-2020 à 11:47:04

---------------
#mais-chut
Reply

Marsh Posté le 27-02-2020 à 12:16:36    

ok merci c'est sympa de ta part je vais déjà change de topic et power shell j’imagine bien mais honnêtement je ne m'y connait pas plus que ça !!

Reply

Marsh Posté le 27-02-2020 à 12:19:35    

lenul 0001 a écrit :

ok merci c'est sympa de ta part je vais déjà change de topic et power shell j’imagine bien mais honnêtement je ne m'y connait pas plus que ça !!


je connaissait pas du tout non plus, en 1 semaine j'ai réussi a faire ce que je voulais et re-appliqué ce que j'ai appris a plusieurs autre projets.

 


et avec google, on trouve très facilement des examples qui font déjà une bonne part du boulot.

 

par exemple :
 https://devblogs.microsoft.com/scri [...] isk-space/
 https://www.petri.com/checking-syst [...] powershell


Message édité par Z_cool le 27-02-2020 à 12:22:06

---------------
#mais-chut
Reply

Marsh Posté le 27-02-2020 à 14:09:37    

Si on parle du powershell c'est qu'on est sous windows, tu n'as pas essayé avec la gestion des quotas de disques ?
Il me semble que c'est possible de le faire avec des utilisateurs mais peut-être que ça fonctionne aussi en général.

Message cité 1 fois
Message édité par artouillassse le 27-02-2020 à 14:09:54

---------------
3000 tués sur les routes chaque année - c'est décidé, demain je roule sur les trottoirs ©brèves de comptoire
Reply

Marsh Posté le 27-02-2020 à 15:08:11    

artouillassse a écrit :

Si on parle du powershell c'est qu'on est sous windows, tu n'as pas essayé avec la gestion des quotas de disques ?
Il me semble que c'est possible de le faire avec des utilisateurs mais peut-être que ça fonctionne aussi en général.


 
 
en faite j'ai 28 serveurs a surveiller leurs espaces disques et qui sont chacun associés à des utilisateurs dédiés , et donc chacun a son batch comme décris si dessous et qui finalement
fonctionne très bien mais je cherche juste une combine pour modifié l'existant sans trop me prendre la tete en vérité :-) hihihi

Reply

Marsh Posté le 27-02-2020 à 16:29:49    

Oulà ouais en effet, je pensais que c'était un truc un peu plus "home made" à l'arrache ;)
 
Du coup comme l'a déjà dit le compère du dessus, faudrait que tu ailles en section programmation, voir serveur pros.
Là bas à mon avis ils bouffent des scripts au petit dèj tu devrais avoir plus de réponses qu'en hardware.
 
https://forum.hardware.fr/hfr/syste [...] ujet-1.htm


Message édité par artouillassse le 27-02-2020 à 16:30:10

---------------
3000 tués sur les routes chaque année - c'est décidé, demain je roule sur les trottoirs ©brèves de comptoire
Reply

Marsh Posté le 27-02-2020 à 21:18:43    

faut voir le budget aussi, mais il y a des soft qui font du monitoring au petit ognion


---------------
#mais-chut
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed