I am writing a script to grab information, such as hard drive space or
memory availability, from remote servers then output that to a webpage
for viewing. So far I can only get it to work grabbing info from the
localhost, it keeps saying unable to connect to WMI for the remotes.
When I change the value of strComputer to something other than the
localhost, it fails.
-------
-------
Const HARD_DISK = 3
strComputer = "."
Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk
Where DriveType = " & HARD_DISK & "")
Set colOSes = objWMIService.ExecQuery("Select * from
Win32_OperatingSystem")
Set colComputer = objWMIService.ExecQuery("Select * from
Win32_ComputerSystem")
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNewFile = objFS.CreateTextFile("stat.htm")
objNewFile.WriteLine "<html>"
objNewFile.WriteLine "<head>"
objNewFile.WriteLine "<title>Process Report</title>"
objNewFile.WriteLine "<meta http-equiv='Content-Type'
content='text/html; charset=iso-8859-1'>"
objNewFile.WriteLine "<link rel='stylesheet' href='stat.css'>"
objNewFile.WriteLine "</head>"
objNewFile.WriteLine "<body>"
objNewFile.WriteLine "<div class='header'>"
objNewFile.WriteLine "<img src='images/banner.gif'>"
objNewFile.WriteLine "<h2>Process Report -- Date: " & Now() & "</h2>" &
vbCrLf
objNewFile.WriteLine "</div>"
objNewFile.WriteLine "<b>"
For Each objOS in colOSes
objNewFile.WriteLine "<div class='info'>"
objNewFile.WriteLine "Computer Name: " & objOS.CSName & "<br>"
objNewFile.WriteLine "Caption: " & objOS.Caption & "<br>"
objNewFile.WriteLine "Version: " & objOS.Version & "<br>"
objNewFile.WriteLine "Build Number: " & objOS.BuildNumber & "<br>"
objNewFile.WriteLine "Build Type: " & objOS.BuildType & "<br>"
objNewFile.WriteLine "Service Pack: " & objOS.ServicePackMajorVersion &
"." & objOS.ServicePackMinorVersion
objNewFile.WriteLine "</div>"
Next
For Each objDisk in colDisks
objNewFile.WriteLine "<div class='hdd'>"
strUsedDisk =
FormatNumber((((objDisk.Size/1024/1024/1024)-(objDisk.FreeSpace/1024/1024/1024))/(objDisk.Size/1024/1024/1024))*100,
2)
if (strUsedDisk > 80) Then
strUD = "<font color='red'>" & strUsedDisk & "</font>%<br>"
elseif (strUsedDisk > 40) Then
strUD = "<font color='yellow'>" & strUsedDisk & "</font>%<br>"
else strUD = "<font color='green'>" & strUsedDisk & "</font>%<br>"
end if
strFreeDisk =
FormatNumber(((objDisk.FreeSpace/1024/1024/1024)/(objDisk.Size/1024/1024/1024)*100),
2)
if (strFreeDisk < 20 ) Then
strFD = "<font color='red'>" & strFreeDisk & "</font>%<p>"
elseif (strFreeDisk < 60 ) Then
strFD = "<font color='yellow'>" & strFreeDisk & "</font>%<p>"
else strFD = "<font color='green'>" & strFreeDisk & "</font>%<p>"
end if
objNewFile.WriteLine "Drive Letter: " & vbTab & objDisk.DeviceID &
"<br>"
objNewFile.WriteLine "Used Disk Space: " & vbTab &
FormatNumber((objDisk.Size/1024/1024/1024)-(objDisk.FreeSpace/1024/1024/1024),
2) & " GB / " & FormatNumber(objDisk.Size/1024/1024/1024, 2) & "
GB<br>"
objNewFile.WriteLine "Used Disk Space: " & vbTab & strUD
objNewFile.WriteLine "Free Disk Space: " & vbTab &
FormatNumber(objDisk.FreeSpace/1024/1024/1024, 2) & " GB / " &
FormatNumber(objDisk.Size/1024/1024/1024, 2) & " GB<br>"
objNewFile.WriteLine "Free Disk Space: " & vbTab & strFD
objNewFile.WriteLine "</div>"
Next
For Each objOperatingSystem in colOSes
strAvailMem =
FormatNumber((objOperatingSystem.FreePhysicalMemory/1024), 0)
Next
For Each objComputer in colComputer
strTotalMem = FormatNumber((objComputer.TotalPhysicalMemory/1024/1024),
0)
Next
strUsedMem = FormatNumber((strTotalMem-strAvailMem)/(strTotalMem)*100,
2)
if (strUsedMem > 80 ) Then
strUM = "<font color='red'>" & strUsedMem & "</font>%<br>"
elseif (strUsedMem > 40 ) Then
strUM = "<font color='yellow'>" & strUsedMem & "</font>%<br>"
else strUM = "<font color='green'>" & strUsedMem & "</font>%<br>"
end if
strFreeMem = FormatNumber((strAvailMem)/(strTotalMem)*100, 2)
if (strFreeMem < 20 ) Then
strFM = "<font color='red'>" & strFreeMem & "</font>%<br>"
elseif (strFreeMem < 60 ) Then
strFM = "<font color='yellow'>" & strFreeMem & "</font>%<br>"
else strFM = "<font color='green'>" & strFreeMem & "</font>%<br>"
end if
objNewFile.WriteLine "<div class='ram'>"
objNewFile.WriteLine "Used Physical Memory: " & vbTab &
(strTotalMem-strAvailMem) & " MB / " & strTotalMem & " MB<br>"
objNewFile.WriteLine "Used Physical Memory: " & vbTab & strUM
objNewFile.WriteLine "Free Physical Memory: " & vbTab & strAvailMem & "
MB / " & strTotalMem & " MB<br>"
objNewFile.WriteLine "Free Physical Memory: " & vbTab & strFM
objNewFile.WriteLine "</div>"
objNewFile.WriteLine "<div class='ramimg'>"
if ( strFreeMem >= 100 ) Then
objNewFile.WriteLine "<img src='images/100free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 90 ) Then
objNewFile.WriteLine "<img src='images/90free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 80 ) Then
objNewFile.WriteLine "<img src='images/80free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 70 ) Then
objNewFile.WriteLine "<img src='images/70free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 60 ) Then
objNewFile.WriteLine "<img src='images/60free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 50 ) Then
objNewFile.WriteLine "<img src='images/50free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 40 ) Then
objNewFile.WriteLine "<img src='images/40free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 30 ) Then
objNewFile.WriteLine "<img src='images/30free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 20 ) Then
objNewFile.WriteLine "<img src='images/20free.gif' width='100'
height='100'>"
elseif ( strFreeMem >= 10 ) Then
objNewFile.WriteLine "<img src='images/10free.gif' width='100'
height='100'>"
else
objNewFile.WriteLine "<img src='images/0free.gif' width='100'
height='100'>"
end if
objNewFile.WriteLine "</div>"
objNewFile.WriteLine "<div class='hddimg'>"
if ( strFreeDisk >= 100 ) Then
objNewFile.WriteLine "<img src='images/100free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 90 ) Then
objNewFile.WriteLine "<img src='images/90free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 80 ) Then
objNewFile.WriteLine "<img src='images/80free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 70 ) Then
objNewFile.WriteLine "<img src='images/70free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 60 ) Then
objNewFile.WriteLine "<img src='images/60free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 50 ) Then
objNewFile.WriteLine "<img src='images/50free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 40 ) Then
objNewFile.WriteLine "<img src='images/40free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 30 ) Then
objNewFile.WriteLine "<img src='images/30free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 20 ) Then
objNewFile.WriteLine "<img src='images/20free.gif' width='100'
height='100'>"
elseif ( strFreeDisk >= 10 ) Then
objNewFile.WriteLine "<img src='images/10free.gif' width='100'
height='100'>"
else
objNewFile.WriteLine "<img src='images/0free.gif' width='100'
height='100'>"
end if
objNewFile.WriteLine "</div>"
objNewFile.WriteLine "</b>"
objNewFile.WriteLine "</body>"
objNewFile.WriteLine "</html>"
objNewFile.Close