The Win32_LogicalDisk WMI class returns information about the local storage devices on a local computer. This class allows you to run the ChkDsk program on a given storage device. But most importantly, it provides you with information about the size, availability and file system for each hard drive.
From MSDN:
The Win32_LogicalDisk WMI class represents a data source that resolves to an actual local storage device on a computer system running Windows.
Sample usage
Function GetLogicalDiskInfo()
Dim objWMI As Object
Dim disks As Object
Dim disk As Object
Set objWMI = GetWMIService
Set disks = objWMI.ExecQuery("Select * from Win32_LogicalDisk")
For Each disk In disks
Debug.Print disk.Access
Debug.Print disk.Availability
Debug.Print disk.BlockSize
Debug.Print disk.Caption
Debug.Print disk.Compressed
Debug.Print disk.ConfigManagerErrorCode
Debug.Print disk.ConfigManagerUserConfig
Debug.Print disk.CreationClassName
Debug.Print disk.Description
Debug.Print disk.DeviceID
Debug.Print disk.DriveType
Debug.Print disk.ErrorCleared
Debug.Print disk.ErrorDescription
Debug.Print disk.ErrorMethodology
Debug.Print disk.FileSystem
Debug.Print disk.FreeSpace
Debug.Print disk.InstallDate
Debug.Print disk.LastErrorCode
Debug.Print disk.MaximumComponentLength
Debug.Print disk.MediaType
Debug.Print disk.Name
Debug.Print disk.NumberOfBlocks
Debug.Print disk.PNPDeviceID
Debug.Print disk.PowerManagementCapabilities
Debug.Print disk.PowerManagementSupported
Debug.Print disk.ProviderName
Debug.Print disk.Purpose
Debug.Print disk.QuotasDisabled
Debug.Print disk.QuotasIncomplete
Debug.Print disk.QuotasRebuilding
Debug.Print disk.Size
Debug.Print disk.Status
Debug.Print disk.StatusInfo
Debug.Print disk.SupportsDiskQuotas
Debug.Print disk.SupportsFileBasedCompression
Debug.Print disk.SystemCreationClassName
Debug.Print disk.SystemName
Debug.Print disk.VolumeDirty
Debug.Print disk.VolumeName
Debug.Print disk.VolumeSerialNumber
Next disk
End Function
Function GetWMIService() As Object
' http://msdn.microsoft.com/en-us/library/aa394586(VS.85).aspx
Dim strComputer As String
strComputer = "."
Set GetWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
End Function
