【问题标题】:How to get Logical Disk for a specific Hard Disk using WMI?如何使用 WMI 获取特定硬盘的逻辑磁盘?
【发布时间】:2015-01-19 07:24:48
【问题描述】:

我目前正在处理一个需要使用 WMI(Windows 管理界面)的项目。我需要找到硬盘和逻辑磁盘以及有关它们的一些信息。例如我使用以下代码获取物理磁盘:

hd = new HardDrive();
mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE Model = '"
                                        + disksModel[i] + "'");
foreach(ManagementObject moDisk in mosDisks.Get())
{
    string vari = moDisk["DeviceID"].ToString();
    hd.HardDiskModel = moDisk["Model"].ToString();
    hd.HardDiskType = moDisk["InterfaceType"].ToString();
    hd.HardDiskStatus = moDisk.Properties["Status"].Value.ToString();
    hd.HardDiskSize = moDisk.Properties["Size"].Value.ToString();
    hd.HardDiskName = moDisk.Properties["Name"].Value.ToString();
    hd.HardDiskSerialNo = moDisk.Properties["SerialNumber"].Value.ToString();
}

然后是另一个查询以获取逻辑磁盘。

我唯一想知道的是:如何确保获得特定硬盘的逻辑磁盘?

例如,如果我有 3 个硬盘(HD1、HD2、HD3)和 8 个逻辑磁盘(c:j:),我如何确保在代码中例如 c: 和 @ 987654325@属于HD1,e:f:g:h:属于HD2,i:j:属于HD3?

【问题讨论】:

    标签: c# wmi wmi-query


    【解决方案1】:

    您可以使用ASSOCIATORS OF 语句将Win32_DiskDrive 与逻辑驱动器相关联,这些是您必须使用的类。

    • Win32_DiskDrive
    • Win32_DiskDriveToDiskPartition
    • Win32_DiskPartition
    • Win32_LogicalDiskToPartition
    • Win32_LogicalDisk

    前段时间我写了一个Delphi sample about this,你可以查看它,你也可以在这个SO question上找到一个C#示例。

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 2011-01-21
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多