WindowsServerのディスク容量監視
VBScriptでディスク容量を調べて、残り容量が少なくなったら電子メールで管理者にメールを送る。これをタスクマネージャで定期的実行します。
Servers = array( "SERVER1","SERVER2","SERVER3","SERVER4","SERVER5")
DiskMaxSize = 100*1024*1024*1024
MailFlag = false
Message = ""
For Each strComputer in Servers
' WScript.Echo strComputer
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
For Each objDisk in colDisks
if objDisk.DriveType=3 Then
if objDisk.Caption = "C:" then
if objDisk.FreeSpace < 10*1024*1024*1024 then
Message = Message & strComputer & " " & objDisk.Caption & _
"残り=" & FormatNumber(objDisk.FreeSpace/1048576,1) & "MB" & vbCrLf
MailFlag = true
end if
elseif objDisk.FreeSpace - DiskMaxSize < 0 then
Message = Message & strComputer & " " & objDisk.Caption & _
"残り=" & FormatNumber(objDisk.FreeSpace/1048576,1) & "MB" & vbCrLf
MailFlag = true
end if
' WScript.Echo "ドライブ = "+objDisk.Caption+ " 残り容量 = "+objDisk.FreeSpace
end if
Next
Next
if MailFlag then
' WScript.Echo Message
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "admin@hogehoge.jp"
oMsg.To = "admin@hogehoge.jp"
oMsg.Subject = "ディスクの容量不足が発生中"
oMsg.TextBody = Message
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "メールサーバーのIPアドレス"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Update
oMsg.Send
end if
DiskMaxSize: 100GB
Cドライブは10GB
上の容量を切ったらadmin@hogehoge.jpにメールでお知らせを送ります。