You are here:
ActiveXperts.com > ActiveXperts Network Monitor > WindowsManagement > Scripts > Storage > Disk Drives and Volumes > Monitoring
Quicklinks
You can use any of the VBScript programs below in ActiveXperts Network Monitor. Click here for an explanation about how to include scripts in ActiveXperts Network Monitor.
Const LOCAL_HARD_DISK = 3
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredDisks = objWMIService.ExecNotificationQuery _
("Select * from __instancemodificationevent within 30 where " _
& "TargetInstance isa 'Win32_LogicalDisk'")
i = 0
Do While i = 0
Set objDiskChange = colMonitoredDisks.NextEvent
If objDiskChange.TargetInstance.DriveType = LOCAL_HARD_DISK Then
If objDiskChange.TargetInstance.Size < 100000000 Then
Wscript.Echo "Hard disk space is below 100000000 bytes."
End If
End If
Loop
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colDiskDrives = objRefresher.AddEnum _
(objWMIService, "Win32_PerfFormattedData_PerfDisk_LogicalDisk").objectSet
objRefresher.Refresh
For i = 1 to 500
For Each objDiskDrive in colDiskDrives
Wscript.Echo "Drive name: " & objDiskDrive.Name
Wscript.Echo "Disk bytes per second: " & objDiskDrive.DiskBytesPerSec
Wscript.Sleep 2000
objRefresher.Refresh
Next
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskDrives = objWMIService.ExecQuery _
("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk Where " _
& "Name <> '_Total'")
For Each objDiskDrive in colDiskDrives
Wscript.Echo "Drive Name: " & objDiskDrive.Name
Wscript.Echo "Free Space: " & objDiskDrive.FreeMegabytes
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colDisks = objRefresher.AddEnum _
(objWMIService, "win32_perfformatteddata_perfdisk_logicaldisk"). _
objectSet
objRefresher.Refresh
For i = 1 to 100
For Each objDisk in colDisks
Wscript.Echo "Average Disk Bytes Per Read: " & _
objDisk.AvgDiskBytesPerRead
Wscript.Echo "Average Disk Bytes Per Transfer: " & _
objDisk.AvgDiskBytesPerTransfer
Wscript.Echo "Average Disk Bytes Per Write: " & _
objDisk.AvgDiskBytesPerWrite
Wscript.Echo "Average Disk Queue Length: " & _
objDisk.AvgDiskQueueLength
Wscript.Echo "Average Disk Read Queue Length: " & _
objDisk.AvgDiskReadQueueLength
Wscript.Echo "Average Disk Seconds Per Read: " & _
objDisk.AvgDiskSecPerRead
Wscript.Echo "Average Disk Seconds Per Transfer: " & _
objDisk.AvgDiskSecPerTransfer
Wscript.Echo "Average Disk Seconds Per Write: " & _
objDisk.AvgDiskSecPerWrite
Wscript.Echo "Average Disk Write Queue Length: " & _
objDisk.AvgDiskWriteQueueLength
Wscript.Echo "Current Disk Queue Length: " & _
objDisk.CurrentDiskQueueLength
Wscript.Echo "Disk Bytes Per Second: " & _
objDisk.DiskBytesPerSec
Wscript.Echo "Disk Read Bytes Per Second: " & _
objDisk.DiskReadBytesPerSec
Wscript.Echo "Disk Reads Per Second: " & _
objDisk.DiskReadsPerSec
Wscript.Echo "Disk Transfers Per Second: " & _
objDisk.DiskTransfersPerSec
Wscript.Echo "Disk Write Bytes Per Second: " & _
objDisk.DiskWriteBytesPerSec
Wscript.Echo "Disk Writes Per Second: " & _
objDisk.DiskWritesPerSec
Wscript.Echo "Free Megabytes: " & objDisk.FreeMegabytes
Wscript.Echo "Name: " & objDisk.Name
Wscript.Echo "Percent Disk Read Time: " & _
objDisk.PercentDiskReadTime
Wscript.Echo "Percent Disk Time: " & _
objDisk.PercentDiskTime
Wscript.Echo "Percent Disk Write Time: " & _
objDisk.PercentDiskWriteTime
Wscript.Echo "Percent Free Space: " & _
objDisk.PercentFreeSpace
Wscript.Echo "Percent Idle Time: " & _
objDisk.PercentIdleTime
Wscript.Echo "Split IO Per Second: " & _
objDisk.SplitIOPerSec
Wscript.Sleep 2000
objRefresher.Refresh
Next
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colItems = objRefresher.AddEnum _
(objWMIService, "Win32_PerfFormattedData_PerfDisk_LogicalDisk").objectSet
objRefresher.Refresh
For i = 1 to 5
For Each objItem in colItems
Wscript.Echo "Average Disk Bytes Per Read: " & _
objItem.AvgDiskBytesPerRead
Wscript.Echo "Average Disk Bytes Per Transfer: " & _
objItem.AvgDiskBytesPerTransfer
Wscript.Echo "Average Disk Bytes Per Write: " & _
objItem.AvgDiskBytesPerWrite
Wscript.Echo "Average Disk Queue Length: " & objItem.AvgDiskQueueLength
Wscript.Echo "Average Disk Read Queue Length: " & _
objItem.AvgDiskReadQueueLength
Wscript.Echo "Average Disk Seconds Per Read: " & _
objItem.AvgDisksecPerRead
Wscript.Echo "Average Disk Seconds Per Transfer: " & _
objItem.AvgDisksecPerTransfer
Wscript.Echo "Average Disk Seconds Per Write: " & _
objItem.AvgDisksecPerWrite
Wscript.Echo "Average Disk Write Queue Length: " & _
objItem.AvgDiskWriteQueueLength
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "Current Disk Queue Length: " & _
objItem.CurrentDiskQueueLength
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Disk Bytes Per Second: " & objItem.DiskBytesPersec
Wscript.Echo "Disk Read Bytes Per Second: " & _
objItem.DiskReadBytesPersec
Wscript.Echo "Disk Reads Per Second: " & objItem.DiskReadsPersec
Wscript.Echo "Disk Transfers Per Second: " & _
objItem.DiskTransfersPersec
Wscript.Echo "Disk Write Bytes Per Second: " & _
objItem.DiskWriteBytesPersec
Wscript.Echo "Disk Writes Per Second: " & objItem.DiskWritesPersec
Wscript.Echo "Free Megabytes: " & objItem.FreeMegabytes
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Percent Disk Read Time: " & objItem.PercentDiskReadTime
Wscript.Echo "Percent Disk Time: " & objItem.PercentDiskTime
Wscript.Echo "Percent Disk Write Time: " & _
objItem.PercentDiskWriteTime
Wscript.Echo "Percent Free Space: " & objItem.PercentFreeSpace
Wscript.Echo "Percent Idle Time: " & objItem.PercentIdleTime
Wscript.Echo "Split I/O Per Second: " & objItem.SplitIOPerSec
Wscript.Sleep 2000
objRefresher.Refresh
Next
Next
strComputer = "."
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
For i = 1 to 100
For Each objDisk in colDisks
Wscript.Echo "Average Disk Bytes Per Read: " & vbTab & _
objDisk.AvgDiskBytesPerRead
Wscript.Echo "Average Disk Bytes Per Transfer: " & vbTab & _
objDisk.AvgDiskBytesPerTransfer
Wscript.Echo "Average Disk Bytes Per Write: " & vbTab & _
objDisk.AvgDiskBytesPerWrite
Wscript.Echo "Average Disk Queue Length: " & vbTab & _
objDisk.AvgDiskQueueLength
Wscript.Echo "Average Disk Read Queue Length: " & vbTab & _
objDisk.AvgDiskReadQueueLength
Wscript.Echo "Average Disk Seconds Per Read: " & vbTab & _
objDisk.AvgDiskSecPerRead
Wscript.Echo "Average Disk Seconds Per Transfer: " & vbTab & _
objDisk.AvgDiskSecPerTransfer
Wscript.Echo "Average Disk Seconds Per Write: " & vbTab & _
objDisk.AvgDiskSecPerWrite
Wscript.Echo "Average Disk Write Queue Length: " & vbTab & _
objDisk.AvgDiskWriteQueueLength
Wscript.Echo "Current Disk Queue Length: " & vbTab & _
objDisk.CurrentDiskQueueLength
Wscript.Echo "Disk Bytes Per Second: " & vbTab & _
objDisk.DiskBytesPerSec
Wscript.Echo "Disk Read Bytes Per Second: " & vbTab & _
objDisk.DiskReadBytesPerSec
Wscript.Echo "Disk Reads Per Second: " & vbTab & _
objDisk.DiskReadsPerSec
Wscript.Echo "Disk Transfers Per Second: " & vbTab & _
objDisk.DiskTransfersPerSec
Wscript.Echo "Disk Write Bytes Per Second: " & vbTab & _
objDisk.DiskWriteBytesPerSec
Wscript.Echo "Disk Writes Per Second: " & vbTab & _
objDisk.DiskWritesPerSec
Wscript.Echo "Name: " & vbTab & objDisk.Name
Wscript.Echo "Percent Disk Read Time: " & vbTab & _
objDisk.PercentDiskReadTime
Wscript.Echo "Percent Disk Time: " & vbTab & _
objDisk.PercentDiskTime
Wscript.Echo "Percent Disk Write Time: " & vbTab & _
objDisk.PercentDiskWriteTime
Wscript.Echo "Percent Idle Time: " & vbTab & _
objDisk.PercentIdleTime
Wscript.Echo "Split IO Per Second: " & vbTab & _
objDisk.SplitIOPerSec
Wscript.Sleep 2000
objRefresher.Refresh
Next
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
set objRefresher = CreateObject("WbemScripting.SWbemRefresher")
Set colItems = objRefresher.AddEnum _
(objWMIService, "Win32_PerfFormattedData_PerfDisk_PhysicalDisk").objectSet
objRefresher.Refresh
For i = 1 to 5
For Each objItem in colItems
Wscript.Echo "Average Disk Bytes Per Read: " & _
objItem.AvgDiskBytesPerRead
Wscript.Echo "Average Disk Bytes Per Transfer: " & _
objItem.AvgDiskBytesPerTransfer
Wscript.Echo "Average Disk Bytes Per Write: " & _
objItem.AvgDiskBytesPerWrite
Wscript.Echo "Average Disk Queue Length: " & objItem.AvgDiskQueueLength
Wscript.Echo "Average Disk Read Queue Length: " & _
objItem.AvgDiskReadQueueLength
Wscript.Echo "Average Disk Seconds Per Read: " & _
objItem.AvgDisksecPerRead
Wscript.Echo "Average Disk Seconds Per Transfer: " & _
objItem.AvgDisksecPerTransfer
Wscript.Echo "Average Disk Seconds Per Write: " & _
objItem.AvgDisksecPerWrite
Wscript.Echo "Average Disk Write Queue Length: " & _
objItem.AvgDiskWriteQueueLength
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "Current Disk Queue Length: " & _
objItem.CurrentDiskQueueLength
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Disk Bytes Per Second: " & objItem.DiskBytesPersec
Wscript.Echo "Disk Read Bytes Per Second: " & _
objItem.DiskReadBytesPersec
Wscript.Echo "Disk Reads Per Second: " & objItem.DiskReadsPersec
Wscript.Echo "Disk Transfers Per Second: " & _
objItem.DiskTransfersPersec
Wscript.Echo "Disk Write Bytes Per Second: " & _
objItem.DiskWriteBytesPersec
Wscript.Echo "Disk Writes Per Second: " & objItem.DiskWritesPersec
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Percent Disk Read Time: " & objItem.PercentDiskReadTime
Wscript.Echo "Percent Disk Time: " & objItem.PercentDiskTime
Wscript.Echo "Percent Disk Write Time: " & objItem.PercentDiskWriteTime
Wscript.Echo "Percent Idle Time: " & objItem.PercentIdleTime
Wscript.Echo "Split I/O Per Second: " & objItem.SplitIOPerSec
Wscript.Sleep 2000
objRefresher.Refresh
Next
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService. _
ExecNotificationQuery("Select * from Win32_VolumeChangeEvent")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo objLatestEvent.DriveName
Wscript.Echo objLatestEvent.EventType
Wscript.Echo objLatestEvent.Time_Created
Loop