How to get Hard Disk number from drive letter using VBScript

前端 未结 3 1896
旧巷少年郎
旧巷少年郎 2020-12-18 12:36

How to get Hard Disk number from drive letter using VBScript?

Thank you in advance.

3条回答
  •  一向
    一向 (楼主)
    2020-12-18 13:12

    Remou is right about WMI, just have to make it a little bit more messy. Wouldn't be at all surprised if there's an easier/better way of doing this, but this script should at least give you a good starting point for doing what you need.

    Dim query 
    Dim objWMI 
    Dim diskDrives 
    Dim diskDrive 
    Dim partitions 
    Dim partition ' will contain the drive & partition numbers
    Dim logicalDisks 
    Dim logicalDisk ' will contain the drive letter
    
    Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
    Set diskDrives = objWMI.ExecQuery("SELECT * FROM Win32_DiskDrive") ' First get out the physical drives
    For Each diskDrive In diskDrives 
        query = "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + diskDrive.DeviceID + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition" ' link the physical drives to the partitions
        Set partitions = objWMI.ExecQuery(query) 
        For Each partition In partitions 
            query = "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition.DeviceID + "'} WHERE AssocClass = Win32_LogicalDiskToPartition"  ' link the partitions to the logical disks 
            Set logicalDisks = objWMI.ExecQuery (query) 
            For Each logicalDisk In logicalDisks      
                Wscript.Echo logicalDisk.DeviceID & " - " & partition.Caption
            Next
        Next 
    Next 
    

    This will enumerate all drive letters and give you the results as for example: C: - Disk #2, Partion #0

提交回复
热议问题