How to get Hard Disk number from drive letter using VBScript

前端 未结 3 1898
旧巷少年郎
旧巷少年郎 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:38

    This is not the exact answer but in case some need it in C# use this function that I just created

        private string GetDiskIndex(string driveLetter)
        {
            driveLetter = driveLetter.TrimEnd('\\');
    
            ManagementScope scope = new ManagementScope(@"\root\cimv2");
            var drives = new ManagementObjectSearcher(scope, new ObjectQuery("select * from Win32_DiskDrive")).Get();
            foreach(var drive in drives)
            {
    
                var partitions = new ManagementObjectSearcher(scope, new ObjectQuery("ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition")).Get();
                foreach(var partition in partitions)
                {
                    var logicalDisks = new ManagementObjectSearcher(scope, new ObjectQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition")).Get();
                    foreach (var logicalDisk in logicalDisks)
                    {
                        if (logicalDisk["DeviceId"].ToString() == driveLetter) return partition["DiskIndex"].ToString();
                    }
                }
    
            }
    
            return null;
        }
    

提交回复
热议问题