Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ENVOI MAIL D'ALERTE SI ESPACE DISQUE INFÉRIEUR À 1GO


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : espace, disque, alerte, mail Niveau : Débutant Date de création : 27/04/2006 Vu : 8 450

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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

Commentaires et avis

signaler à un administrateur
Commentaire de Mik10_46 le 27/04/2006 15:42:14

Salut, je viens de regarder ton code, pas mal du tout et très utile!!!!!
je n'ai pour le moment pas vu d'erreur, donc la Note s'en fait ressentir : 10/10

Cordialement,

Mik

signaler à un administrateur
Commentaire de flopad le 27/04/2006 16:47:31

Merci!!

signaler à un administrateur
Commentaire de OneHacker le 28/04/2006 09:24:43

Voici l'erreur que je reçois disant que le programme n'a pas pu créer le contrôle ActiveX :

System.Exception: Impossible de créer le composant ActiveX.
   at Microsoft.VisualBasic.Interaction.GetObject(String PathName, String Class)
   at Mail_Alerte.mdlMain.SendMail() in C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\Mail Alerte\mdlMain.vb:line 23
   at Mail_Alerte.mdlMain.Main() in C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\Mail Alerte\mdlMain.vb:line 7

Je pense que c'est au niveau objWMIService.

J'ai remarqué que tu créer un CDO.Message, il y a plus simple il est déjà dans la FrameWork moi je fais une référence System.Web

puis j'écris ce code :

Dim myMail As New Web.Mail.MailMessage

With myMail
                    .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
                    .Body = objDisk.DeviceID & FreeSpaceMO & " MO de Libres"
                    .Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                    .Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "NOM D'UTILISATEUR DU COMPTE QUI ENVOIE LES MAIL"
                    .Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "MOT DE PASSE DU COMPTE QUI ENVOIE LES MAILS"
                    .Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
                    Web.Mail.SmtpMail.Send(myMail)
                End With

Bonne continuation !

Redman

signaler à un administrateur
Commentaire de getaom le 11/07/2006 10:39:14

bjr,

j'aimerais savoir comment utiliser votre code sur le serveur.

Merci

signaler à un administrateur
Commentaire de OneHacker le 11/07/2006 14:14:26

GETAOM, tu dois déjà avoir un serveur, il faut Windows XP Pro (qui inclus le serveur IIS) et VB.Net 2003 version Pro pour créer des programmes Serveurs.

Voilà

signaler à un administrateur
Commentaire de getaom le 11/07/2006 14:51:20

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

signaler à un administrateur
Commentaire de OneHacker le 12/07/2006 01:37:51

Nom un service tour,e forcément en permanance, tu dois juste le démarrer ou le stopper avec le controle ServiceController.

signaler à un administrateur
Commentaire de getaom le 12/07/2006 14:42:52

ok. merci

signaler à un administrateur
Commentaire de ptbout le 04/10/2007 15:21:00

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Urgent, probleme d'espace disque avec Access [ par DJGunsmith ] J'ai un probème avec Acces. Je créé des tables grâce à des requêtes d'insertion et quand j'ai fini, je les effaces. Jusque là je suis satisfait, mais Figer Espace Disque [ par DiJiTooL ] Voila je voulez savoir si en vb il était possible de figer l'espace disque :)merci d'avance:p VB6 - Fonction pour avoir l'espace restant d'un disque? [ par Chris_LaFouine ] Je cherche à faire une fonction qui me permette d'avoir, en Mo, l'espace restant d'un disque... cette fonction aura pour forme :private function Espac Espace Disque a partir d'un partage [ par stef33 ] Bonjour,Je souhaiterais savoir s'il est possible (et si oui de quelle maniere) de connaitre l'espace disque restant (libre) en se basant sur un partag Evenements outlook [ par JeffLC ] Je cherche à executer une macro outlook (extraction des pièces jointes d'un mail vers le disque dur ou un disque réseau) automatiquement à l'arrivée d Probleme avec Espace Disque Libre [ par Chris_LaFouine ] J'ai besoin d'avoir la taille restante sur l'un des lecteurs que j'ai choisi dans mon code... mais je ne sais comment faire, j'ai vu des sources mais Espace disque dur [ par guicore ] Bonjour à tous ! Je souhaiterais savoir comment faire pour récupérer l'espace restant, utilisé et totale, de plusieurs disques durs de plusieurs serv Espace disque dur [ par guicore ] Bonjour à tous ! Je souhaiterais savoir comment faire pour récupérer l'espace restant, utilisé et totale, de plusieurs disques durs de plusieurs serv Probleme au niveau de la mémoire disque [ par pataccess ] Bonsoir tout le mondeEncore une question et pas des moindre. JE suis toujours sur Access avec une requ&#234;te qui ne veux pas s'ex&#233;cuter ! En ef Comment connaitre l'espace libre d'un disque ? [ par copper ] Salut,Je souhaiterai savoir comment on peut détérminer l'espace libre d'un disque en FAT32 (&gt; 2048 Mo).


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.