Envoi mail d'alerte si espace disque inférieur à 1go

0/5 (10 avis)

Snippet vu 14 801 fois - Téléchargée 32 fois

Contenu du snippet

Bonjour,

ce code m'est très utile pour surveiller mes serveurs, en effet, il parmet de m'envoyer un mail d'alerte dès que l'espace disque est inférieur à 1GO sur une des partitions.
On peut bien sur changer l'espace disque en dessous duquel l'alerte est envoyée.
Il suffit de paramétrer les choses suivantes :
strComputer = "ADRESSE IP DU POSTE A SURVEILLER"

.From = "ADRESSE MAIL D'OU L'ALERTE EST ENVOYEE"

.To = "ADRESSE MAIL DU OU DES DESTINATAIRES DE L'ALERTE"

.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SERVEUR DE MESSAGERIE"
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "NOM D'UTILISATEUR DU COMPTE QUI ENVOIE LES MAIL"
.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "MOT DE PASSE DU COMPTE QUI ENVOIE LES MAILS"

Source / Exemple :


Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim strComputer As String
        Dim objWMIService As Object
        Dim colDisks As Object
        Dim objDisk As Object
        Dim intFreeSpace As String
        Dim FreeSpaceMO As String
        strComputer = "ADRESSE IP DU POSTE A SURVEILLER"
        objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
        colDisks = objWMIService.ExecQuery _
       ("Select * from Win32_LogicalDisk Where DriveType = 3")
        For Each objDisk In colDisks
            intFreeSpace = objDisk.FreeSpace
            FreeSpaceMO = intFreeSpace / 1048576

            If FreeSpaceMO < 1000 Then

                With CreateObject("CDO.Message")
                    .From = "ADRESSE MAIL D'OU L'ALERTE EST ENVOYEE"
                    .To = "ADRESSE MAIL DU OU DES DESTINATAIRES DE L'ALERTE"
                    .Subject = "Notification - Espace disponible inférieur à 1GO sur " & strComputer
                    .TextBody = objDisk.DeviceID & FreeSpaceMO & " MO de Libres"
                    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SERVEUR DE MESSAGERIE"
                    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "NOM D'UTILISATEUR DU COMPTE QUI ENVOIE LES MAIL"
                    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "MOT DE PASSE DU COMPTE QUI ENVOIE LES MAILS"
                    .Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
                    .Configuration.Fields.Update()
                    .Send()
                End With
            End If
        Next
        End
    End Sub
End Class

A voir également

Ajouter un commentaire Commentaires
tempusus Messages postés 358 Date d'inscription dimanche 8 février 2004 Statut Membre Dernière intervention 9 octobre 2017 1
26 janv. 2009 à 14:48
Salut!

Je viens de tester ce script et j'ai une erreur:
C:\scripts\test2.wsf(34, 2) Windows Script Host: Référence d'entité non terminée
- ';' correspondant non trouvé

sais-tu d'où cela peut venir?

c'est à priori detecté à la fin du script...

une idée pour solutionner le probleme?

Cdt

Tempusus
Admin CS
ptbout Messages postés 1 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 4 octobre 2007
4 oct. 2007 à 15:21
Bonjour à tous,
je suis on ne peut plus débutante dans le sujet, et j'ai essayé de lancer ton script mais ça ne marche pas, j'ai une erreur dès la ligne 1 :
line :1
char : 9
error : expected identifier
code : 800A03F2
Source : Microsoft VBScript compilation error
getaom Messages postés 4 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 14:42
ok. merci
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
12 juil. 2006 à 01:37
Nom un service tour,e forcément en permanance, tu dois juste le démarrer ou le stopper avec le controle ServiceController.
getaom Messages postés 4 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 12 juillet 2006
11 juil. 2006 à 14:51
OK. mais après ? cad, il faut qu'il tourne en permanence ce pg, comment faire ?
PS : je ne suis pas du tout un expert en info.

merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.