' Desc: PhyiscalDisk.
' Author: MJ
' Notes: Just some things I felt are important to have on an overall server phyiscal disks.
'
' AvgDiskSecPerRead - avg time in sec of a read of data from disk
' AvgDiskSecPerWrite - avg time in sec of a write operation of data to disk
' DiskReadsPerSec - Rate of read operations on the disk
' DiskReadBytesPerSec - rate at which btes are xfered from the disk during read operations
' DiskWriteBytesPerSec - rate at which bytes are xfered to the disk during a write operation
' DiskWritesPerSec - the rate of write operations on the disk
' AvgDiskQueueLength - avg number of both read and write requests that queued for the disk
' PercentDiskTime - % of elapsed tim that the disk drive is busy servicing read or write requests
On Error Resume Next
strComputer = "."
Dim AvgDiskQueueLength, AvgDisksecPerRead,AvgDisksecPerWrite,DiskReadBytesPersec,DiskReadsPersec,DiskWriteBytesPersec,DiskWritesPersec,PercentDiskTime
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colDisks = objRefresher.AddEnum (objWMIService, "win32_perfformatteddata_perfdisk_physicaldisk").objectSet
objRefresher.Refresh
'Set colItems = objWMIService.ExecQuery("Select * from Win32_PerfFormattedData_PerfDisk_PhysicalDisk",,48)
' getting initial values
Do
For Each objItem in colDisks
' Fix Name to remove any : (since Introscope uses : as a delimiter)
Name = objItem.Name
fixedName = Replace(Name, ":", "", 1, -1, 1)
' Write out values
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Echo ""
Wscript.Sleep(2000)
objRefresher.Refresh
Next
Loop
'