How to get Hard Disk number from drive letter using VBScript?
Thank you in advance.
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;
}