|
![]() |
EinführungDieses Crash Tutorial zeigt Dir wie man mit einem Skript die Diskauslastung der Server ueberwacht.
Getestet wurde dieses Tutorial auf Windows 2003 SP2
Falls Du fragen oder anregungen hast kannst Du mir jederzeit ein Mail schreiben (tutorial@thetube.ch).
Dim Server(4)
Server(0) = "Server1"
Server(1) = "Server2"
Server(2) = "Server3"
Server(3) = "Server4"
Server(4) = "Server5"
Quota = 10
SendMail = False
set wshFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
set NewFile = wshFSO.CreateTextFile("server_status.html", True)
NewFile.WriteLine "<?xml version=""1.0"" encoding=""ISO-8859-1""?>"
NewFile.WriteLine "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Strict//EN"" ""http://www. w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"">"
NewFile.WriteLine "<head>"
NewFile.WriteLine "<title>Server Diskspace</title>"
NewFile.WriteLine "</style> </head>"
NewFile.WriteLine "<body>"
NewFile.WriteLine "<basefont face=""Arial"">"
NewFile.WriteLine "<h2 id=""sitetitle"">Server Diskspace</h2><br>"
NewFile.WriteLine "<table border=""0"" class=""contborder"">"
For i = 0 to UBound(Server)
getdiskspace(Server(i))
Next
NewFile.WriteLine "</table>"
NewFile.WriteLine "</body>"
NewFile.WriteLine "</html>"
NewFile.close
if SendMail = True Then
MailRec = "admin@example.ch"
MailCmd = "c:windows\system32\blat.exe server_status.html -server exchange.local.ch -t " & MailRec & " -f serverstatus@example.ch -s ""Server Status"""
objShell.Run MailCmd, 0, True
wscript.quit(0)
else
wscript.quit(0)
End if
Function GetDiskSpace( strComputer )
NewFile.WriteLine "<tr></tr><tr></tr>"
NewFile.WriteLine "<tr>"
NewFile.WriteLine "<td><b>Server Name</b></td>"
NewFile.WriteLine "<td><b>Drive</b></td>"
NewFile.WriteLine "<td><b>Size</b></td>"
NewFile.WriteLine "<td><b>Free</b></td>"
NewFile.WriteLine "<td><b>Free (%)</b></td>"
NewFile.WriteLine "</tr>"
NewFile.WriteLine "<tr></tr><tr></tr>"
On Error Resume Next
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
If Err.Number Then
WScript.Echo vbCrLf & "Error # " & CStr( Err.Number ) & _
" " & Err.Description
Err.Clear
Syntax
End If
On Error GoTo 0
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType=3",,48)
For Each objItem in colItems
NewFile.WriteLine "<tr></tr>"
if Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) < Quota then
NewFile.WriteLine "<tr>"
NewFile.WriteLine "<td>" & strComputer & "</td>"
NewFile.WriteLine "<td style=""width: 20px; background-color: red;"">" & objItem.Name & "</td>"
NewFile.WriteLine "<td align=""right"">" & CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) ) & "</td>"
NewFile.WriteLine "<td align=""right"">" & CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) ) & "</td>"
NewFile.WriteLine "<td align=""right"">" & CStr( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & "</td>"
NewFile.WriteLine "</tr>"
SendMail = True
else
NewFile.WriteLine "<tr>"
NewFile.WriteLine "<td>" & strComputer & "</td>"
NewFile.WriteLine "<td style=""width: 20px; background-color: green;"">" & objItem.Name & "</td>"
NewFile.WriteLine "<td align=""right"">" & CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) ) & "</td>"
NewFile.WriteLine "<td align=""right"">" & CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) ) & "</td>"
NewFile.WriteLine "<td align=""right"">" & CStr( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & "</td>"
NewFile.WriteLine "</tr>"
end if
Next
End Function