You are here:
ActiveXperts.com > ActiveXperts Network Monitor > WindowsManagement > Scripts > Storage > Disk Drives and Volumes > Physical and Logical Disks
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.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Volume Where Name = 'D:\\'")
For Each objItem in colItems
objItem.AddMountPoint("W:\\Scripts\\")
Next
strComputer = "."
Set wmiServices = GetObject _
("winmgmts:{impersonationLevel=Impersonate}!//" & strComputer)
Set wmiDiskDrives = wmiServices.ExecQuery _
("SELECT Caption, DeviceID FROM Win32_DiskDrive")
For Each wmiDiskDrive In wmiDiskDrives
WScript.Echo wmiDiskDrive.Caption & " (" & wmiDiskDrive.DeviceID & ")"
strEscapedDeviceID = Replace _
(wmiDiskDrive.DeviceID, "\", "\\", 1, -1, vbTextCompare)
Set wmiDiskPartitions = wmiServices.ExecQuery _
("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & _
strEscapedDeviceID & """} WHERE AssocClass = " & _
"Win32_DiskDriveToDiskPartition")
For Each wmiDiskPartition In wmiDiskPartitions
WScript.Echo vbTab & wmiDiskPartition.DeviceID
Set wmiLogicalDisks = wmiServices.ExecQuery _
("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
wmiDiskPartition.DeviceID & """} WHERE AssocClass = " & _
"Win32_LogicalDiskToPartition")
For Each wmiLogicalDisk In wmiLogicalDisks
WScript.Echo vbTab & vbTab & wmiLogicalDisk.DeviceID
Next
Next
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery("Select * from Win32_Volume")
For Each objVolume in colVolumes
errResult = objVolume.DefragAnalysis(blnRecommended, objReport)
If errResult = 0 then
Wscript.Echo "Average file size: " & objReport.AverageFileSize
Wscript.Echo "Average fragments per file: " & _
objReport.AverageFragmentsPerFile
Wscript.Echo "Cluster size: " & objReport.ClusterSize
Wscript.Echo "Excess folder fragments: " & _
objReport.ExcessFolderFragments
Wscript.Echo "File percent fragmentation: " & _
objReport.FilePercentFragmentation
Wscript.Echo "Fragmented folders: " & objReport.FragmentedFolders
Wscript.Echo "Free soace: " & objReport.FreeSpace
Wscript.Echo "Free space percent: " & objReport.FreeSpacePercent
Wscript.Echo "Free space percent fragmentation: " & _
objReport.FreeSpacePercentFragmentation
Wscript.Echo "MFT percent in use: " & objReport.MFTPercentInUse
Wscript.Echo "MFT record count: " & objReport.MFTRecordCount
Wscript.Echo "Page file size: " & objReport.PageFileSize
Wscript.Echo "Total excess fragments: " & _
objReport.TotalExcessFragments
Wscript.Echo "Total files: " & objReport.TotalFiles
Wscript.Echo "Total folders: " & objReport.TotalFolders
Wscript.Echo "Total fragmented files: " & _
objReport.TotalFragmentedFiles
Wscript.Echo "Total MFT fragments: " & objReport.TotalMFTFragments
Wscript.Echo "Total MFT size: " & objReport.TotalMFTSize
Wscript.Echo "Total page file fragments: " & _
objReport.TotalPageFileFragments
Wscript.Echo "Total percent fragmentation: " & _
objReport.TotalPercentFragmentation
Wscript.Echo "Used space: " & objReport.UsedSpace
Wscript.Echo "Volume name: " & objReport.VolumeName
Wscript.Echo "Volume size: " & objReport.VolumeSize
If blnRecommended = True Then
Wscript.Echo "This volume should be defragged."
Else
Wscript.Echo "This volume does not need to be defragged."
End If
Wscript.Echo
End If
Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDrive = objFSO.GetDrive("C:")
Wscript.Echo "Available space: " & objDrive.AvailableSpace
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery _
("Select * from Win32_Volume Where Name = 'D:\\'")
For Each objVolume in colVolumes
objVolume.DriveLetter = "Q:"
objVolume.Put_
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Volume Where Name = 'E:\\'")
For Each objItem in colItems
objItem.Dismount(True, True)
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery _
("Select * from Win32_Volume Where Name = 'D:\\'")
For Each objVolume in colVolumes
errResult = objVolume.Defrag()
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery _
("Select * from Win32_Volume Where Name = 'D:\\'")
For Each objVolume in colVolumes
errResult = objVolume.Format("NTFS")
Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Next
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 & "")
For Each objDisk in colDisks
Wscript.Echo "DeviceID: "& vbTab & objDisk.DeviceID
Wscript.Echo "Free Disk Space: "& vbTab & objDisk.FreeSpace
Next
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
For Each objItem in colItems
Wscript.Echo "Availability: " & objItem.Availability
For Each strCapability in objItem.Capabilities
Wscript.Echo "Capability: "& strCapability
Next
Wscript.Echo "Caption: " & objItem.Caption
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Device ID: " & objItem.DeviceID
Wscript.Echo "Drive: " & objItem.Drive
Wscript.Echo "Manufacturer: " & objItem.Manufacturer
Wscript.Echo "Media Loaded: " & objItem.MediaLoaded
Wscript.Echo "Media Type: " & objItem.MediaType
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID
Wscript.Echo "SCSI Bus: " & objItem.SCSIBus
Wscript.Echo "SCSI Logical Unit: " & objItem.SCSILogicalUnit
Wscript.Echo "SCSI Port: " & objItem.SCSIPort
Wscript.Echo "SCSI Target ID: " & objItem.SCSITargetId
Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
Wscript.Echo "Available space: " & objDrive.AvailableSpace
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Wscript.Echo "Drive type: " & objDrive.DriveType
Wscript.Echo "File system: " & objDrive.FileSystem
Wscript.Echo "Free space: " & objDrive.FreeSpace
Wscript.Echo "Is ready: " & objDrive.IsReady
Wscript.Echo "Path: " & objDrive.Path
Wscript.Echo "Root folder: " & objDrive.RootFolder
Wscript.Echo "Serial number: " & objDrive.SerialNumber
Wscript.Echo "Share name: " & objDrive.ShareName
Wscript.Echo "Total size: " & objDrive.TotalSize
Wscript.Echo "Volume name: " & objDrive.VolumeName
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskPartitions = objWMIService.ExecQuery _
("Select * from Win32_DiskPartition")
For each objPartition in colDiskPartitions
Wscript.Echo "Block Size: " & objPartition.BlockSize
Wscript.Echo "Bootable: " & objPartition.Bootable
Wscript.Echo "Boot Partition: " & objPartition.BootPartition
Wscript.Echo "Description: " & objPartition.Description
Wscript.Echo "Device ID: " & objPartition.DeviceID
Wscript.Echo "Disk Index: " & objPartition.DiskIndex
Wscript.Echo "Index: " & objPartition.Index
Wscript.Echo "Name: " & objPartition.Name
Wscript.Echo "Number Of Blocks: " & _
objPartition.NumberOfBlocks
Wscript.Echo "Primary Partition: " & _
objPartition.PrimaryPartition
Wscript.Echo "Size: " & objPartition.Size
Wscript.Echo "Starting Offset: " & _
objPartition.StartingOffset
Wscript.Echo "Type: " & objPartition.Type
Next
Set colDiskQuotas = CreateObject("Microsoft.DiskQuota.1")
colDiskQuotas.Initialize "C:\", True
For Each objUser in colDiskQuotas
Wscript.Echo "Logon name: " & objUser.LogonName
Wscript.Echo "Quota used: " & objUser.QuotaUsed
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")
For Each objDisk in colDisks
Wscript.Echo "DeviceID: "& objDisk.DeviceID
Select Case objDisk.DriveType
Case 1
Wscript.Echo "No root directory. Drive type could not be " _
& "determined."
Case 2
Wscript.Echo "DriveType: "& "Removable drive."
Case 3
Wscript.Echo "DriveType: "& "Local hard disk."
Case 4
Wscript.Echo "DriveType: "& "Network disk."
Case 5
Wscript.Echo "DriveType: "& "Compact disk."
Case 6
Wscript.Echo "DriveType: "& "RAM disk."
Case Else
Wscript.Echo "Drive type could not be determined."
End Select
Next
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_FloppyDrive")
For Each objItem in colItems
Wscript.Echo "Availability: " & objItem.Availability
Wscript.Echo "Configuration Manager Error Code: " & _
objItem.ConfigManagerErrorCode
Wscript.Echo "Configuration Manager User Configuration: " & _
objItem.ConfigManagerUserConfig
Wscript.Echo "Device ID: " & objItem.DeviceID
Wscript.Echo "Manufacturer: " & objItem.Manufacturer
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID
Wscript.Echo
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")
For each objDisk in colDisks
Wscript.Echo "Compressed: " & objDisk.Compressed
Wscript.Echo "Description: " & objDisk.Description
Wscript.Echo "DeviceID: " & objDisk.DeviceID
Wscript.Echo "DriveType: " & objDisk.DriveType
Wscript.Echo "FileSystem: " & objDisk.FileSystem
Wscript.Echo "FreeSpace: " & objDisk.FreeSpace
Wscript.Echo "MediaType: " & objDisk.MediaType
Wscript.Echo "Name: " & objDisk.Name
Wscript.Echo "QuotasDisabled: " & objDisk.QuotasDisabled
Wscript.Echo "QuotasIncomplete: " & objDisk.QuotasIncomplete
Wscript.Echo "QuotasRebuilding: " & objDisk.QuotasRebuilding
Wscript.Echo "Size: " & objDisk.Size
Wscript.Echo "SupportsDiskQuotas: " & _
objDisk.SupportsDiskQuotas
Wscript.Echo "SupportsFileBasedCompression: " & _
objDisk.SupportsFileBasedCompression
Wscript.Echo "SystemName: " & objDisk.SystemName
Wscript.Echo "VolumeDirty: " & objDisk.VolumeDirty
Wscript.Echo "VolumeName: " & objDisk.VolumeName
Wscript.Echo "VolumeSerialNumber: " & _
objDisk.VolumeSerialNumber
Next
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_MappedLogicalDisk")
For Each objItem in colItems
Wscript.Echo "Compressed: " & objItem.Compressed
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Device ID: " & objItem.DeviceID
Wscript.Echo "File System: " & objItem.FileSystem
Wscript.Echo "Free Space: " & objItem.FreeSpace
Wscript.Echo "Maximum Component Length: " & objItem.MaximumComponentLength
Wscript.Echo "Name: " & objItem.Name
Wscript.Echo "Provider Name: " & objItem.ProviderName
Wscript.Echo "Session ID: " & objItem.SessionID
Wscript.Echo "Size: " & objItem.Size
Wscript.Echo "Supports Disk Quotas: " & objItem.SupportsDiskQuotas
Wscript.Echo "Supports File-Based Compression: " & _
objItem.SupportsFileBasedCompression
Wscript.Echo "Volume Name: " & objItem.VolumeName
Wscript.Echo "Volume Serial Number: " & objItem.VolumeSerialNumber
Wscript.Echo
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDiskDrives = objWMIService.ExecQuery _
("Select * from Win32_DiskDrive")
For each objDiskDrive in colDiskDrives
Wscript.Echo "Bytes Per Sector: " & vbTab & _
objDiskDrive.BytesPerSector
For i = Lbound(objDiskDrive.Capabilities) to _
Ubound(objDiskDrive.Capabilities)
Wscript.Echo "Capabilities: " & vbTab & _
objDiskDrive.Capabilities(i)
Next
Wscript.Echo "Caption: " & vbTab & objDiskDrive.Caption
Wscript.Echo "Device ID: " & vbTab & objDiskDrive.DeviceID
Wscript.Echo "Index: " & vbTab & objDiskDrive.Index
Wscript.Echo "Interface Type: " & vbTab & objDiskDrive.InterfaceType
Wscript.Echo "Manufacturer: " & vbTab & objDiskDrive.Manufacturer
Wscript.Echo "Media Loaded: " & vbTab & objDiskDrive.MediaLoaded
Wscript.Echo "Media Type: " & vbTab & objDiskDrive.MediaType
Wscript.Echo "Model: " & vbTab & objDiskDrive.Model
Wscript.Echo "Name: " & vbTab & objDiskDrive.Name
Wscript.Echo "Partitions: " & vbTab & objDiskDrive.Partitions
Wscript.Echo "PNP DeviceID: " & vbTab & objDiskDrive.PNPDeviceID
Wscript.Echo "SCSI Bus: " & vbTab & objDiskDrive.SCSIBus
Wscript.Echo "SCSI Logical Unit: " & vbTab & _
objDiskDrive.SCSILogicalUnit
Wscript.Echo "SCSI Port: " & vbTab & objDiskDrive.SCSIPort
Wscript.Echo "SCSI TargetId: " & vbTab & objDiskDrive.SCSITargetId
Wscript.Echo "Sectors Per Track: " & vbTab & _
objDiskDrive.SectorsPerTrack
Wscript.Echo "Signature: " & vbTab & objDiskDrive.Signature
Wscript.Echo "Size: " & vbTab & objDiskDrive.Size
Wscript.Echo "Status: " & vbTab & objDiskDrive.Status
Wscript.Echo "Total Cylinders: " & vbTab & _
objDiskDrive.TotalCylinders
Wscript.Echo "Total Heads: " & vbTab & objDiskDrive.TotalHeads
Wscript.Echo "Total Sectors: " & vbTab & objDiskDrive.TotalSectors
Wscript.Echo "Total Tracks: " & vbTab & objDiskDrive.TotalTracks
Wscript.Echo "Tracks Per Cylinder: " & vbTab & _
objDiskDrive.TracksPerCylinder
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("SELECT * FROM Win32_MountPoint")
For Each objItem In colItems
WScript.Echo "Directory: " & objItem.Directory
WScript.Echo "Volume: " & objItem.Volume
WScript.Echo
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Volume")
For Each objItem In colItems
WScript.Echo "Automount: " & objItem.Automount
WScript.Echo "Block Size: " & objItem.BlockSize
WScript.Echo "Capacity: " & objItem.Capacity
WScript.Echo "Caption: " & objItem.Caption
WScript.Echo "Compressed: " & objItem.Compressed
WScript.Echo "Device ID: " & objItem.DeviceID
WScript.Echo "Dirty Bit Set: " & objItem.DirtyBitSet
WScript.Echo "Drive Letter: " & objItem.DriveLetter
WScript.Echo "Drive Type: " & objItem.DriveType
WScript.Echo "File System: " & objItem.FileSystem
WScript.Echo "Free Space: " & objItem.FreeSpace
WScript.Echo "Indexing Enabled: " & objItem.IndexingEnabled
WScript.Echo "Label: " & objItem.Label
WScript.Echo "Maximum File Name Length: " & objItem.MaximumFileNameLength
WScript.Echo "Name: " & objItem.Name
WScript.Echo "Quotas Enabled: " & objItem.QuotasEnabled
WScript.Echo "Quotas Incomplete: " & objItem.QuotasIncomplete
WScript.Echo "Quotas Rebuilding: " & objItem.QuotasRebuilding
WScript.Echo "Serial Number: " & objItem.SerialNumber
WScript.Echo "Supports Disk Quotas: " & objItem.SupportsDiskQuotas
WScript.Echo "Supports File-Based Compression: " & _
objItem.SupportsFileBasedCompression
WScript.Echo
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colAutoChkSettings = objWMIService.ExecQuery _
("Select * from Win32_AutochkSetting")
For Each objAutoChkSetting in colAutoChkSettings
objAutoChkSetting.UserInputDelay = 30
objAutoChkSetting.Put_
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * From Win32_Volume Where Name = 'Z:\\'")
For Each objItem in colItems
objItem.Mount()
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objDisk = objWMIService.Get("Win32_LogicalDisk")
errReturn = objDisk.ExcludeFromAutoChk(Array("C:"))
Const FIX_ERRORS = True
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='D:'")
errReturn = objDisk.ChkDsk(FIX_ERRORS)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDrives = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk where DeviceID = 'C:'")
For Each objDrive in colDrives
objDrive.VolumeName = "Finance Volume"
objDrive.Put_
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objDisk = objWMIService.Get("Win32_LogicalDisk")
errReturn = objDisk.ScheduleAutoChk(Array("C:"))
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
If objDrive.IsReady = True Then
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Wscript.Echo "Free space: " & objDrive.FreeSpace
Else
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
End If
Next
Const LOCAL_HARD_DISK = 3
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = LOCAL_HARD_DISK ")
For Each objDisk in colDisks
Wscript.Echo "Device ID: "& vbTab & objDisk.DeviceID
Wscript.Echo "Drive Type: "& vbTab & objDisk.VolumeDirty
Next