如何使用 WMI 获取特定硬盘的逻辑磁盘

本文关键字:磁盘 硬盘 何使用 WMI 获取 | 更新日期: 2023-09-27 18:31:16

我目前正在处理一个需要使用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:d:属于 HD1、e:f:g:h:属于 HD2 和 i:j:属于 HD3?

如何使用 WMI 获取特定硬盘的逻辑磁盘

您可以使用

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

  • Win32_DiskDrive
  • Win32_DiskDriveToDiskPartition
  • Win32_DiskPartition
  • Win32_LogicalDiskToPartition
  • Win32_LogicalDisk

前段时间我写了一个关于这个的 Delphi 示例,你可以检查一下,你也可以在这个 SO 问题上找到一个 C# 示例。