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にメールでお知らせを送ります。

この記事が気に入ったらサポートをしてみませんか?