Главная > WSH скрипты > Скрипт для мониторинга свободного места на локальных дисках с уведомлением на e-mail

Скрипт для мониторинга свободного места на локальных дисках с уведомлением на e-mail


20 декабря 2010. Разместил: dimon
Простенький скрипт, который отслеживает свободное место на локальных дисках компьютера или сервера и уведомляет администратора по e-mail о том что оно достигло указанного порога.
Настройки скрипта заданы в начале файла. Все подписано комментариями так что думаю проблем у вас не должно возникнуть.
Если все-таки проблемы у вас возникли - пишите в каменты fellow

'----------------------------------------------------------------------
'
' Copyright (c)  All rights reserved.
'
'
' AUTHOR: tudimon.com
' DATE: 20.12.2010
' NAME: freespacedisk.vbs
'
' COMMENT:
'
' Скрипт отсылает сообщение по электронной почте когда свободное
' пространство на дисках меньше заданного порога
'
'----------------------------------------------------------------------

compName = "ServerName"  ' имя компьютера/сервера
Quota = 450  ' порог в Гб
strSMTP_Server = "smtp.local"  ' SMTP сервер
strTo = "support@domain.ru"  ' e-mail куда отсылаем предупреждение
strFrom = "support@domain.ru"  ' от кого
strSubject = "Low disk space on " & compName  ' тема сообщения
strBody = ""  ' текст сообщения
needSentMail = 0  ' флаг, что требуется слать письмо - достигнут лимит
DriveLetters = "D|E|F"  ' список дисков для проверки

DriveLettersArray = Split (DriveLetters,"|")    ' сделаем массив с буквами отслеживаемых дисков

For Each DriveLettersArray in DriveLettersArray

    Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    Set Drive = fso.GetDrive(DriveLettersArray)
    free = Int((fso.GetDrive(drive).FreeSpace/(1024*1024*1024))) ' кол-во свободных Гб на винте

    If free < Quota Then
        needSentMail = 1
        strBody = strBody & vbNewLine & "Disk space on drive " & DriveLettersArray & " is less than " & Quota & " Gb (" & free & " Gb)"
        'MsgBox strBody
    End If

Next

    ' если флаг был изменен, то уведомим по е-майлу администратора
    If needSentMail = 1 Then
        
        Set iMsg = CreateObject("CDO.Message")
        Set iConf = CreateObject("CDO.Configuration")
        Set Flds = iConf.Fields
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP_Server
        Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
        Flds.Update
        iMsg.Configuration = iConf
        iMsg.To = strTo
        iMsg.From = strFrom
        iMsg.Subject = strSubject
        iMsg.TextBody = strBody
        iMsg.Send

    End If


Запихиваем этот скрипт в планировщик задач Windows и получаем письма.
Периодичность проверки задается в настройках задачи планировщика

v2 - добавлена авторизация на smtp-сервере

freespacedisk.zip [1,39 Kb] (cкачиваний: 261)
freespacedisk_v2.rar [2,28 Kb] (cкачиваний: 377)

Вернуться назад