c#
  • wmi
  • wmi-query
  • 2014-11-21 45 views 0 likes 
    0

    我目前工作的一个项目,我需要使用WMI(Windows管理接口)。我需要找到硬盘,逻辑磁盘和一些关于它们的信息。例如,我使用以下代码来获取物理磁盘:如何使用WMI获取逻辑磁盘特定硬盘?

    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?

    回答

    1

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

    • Win32_DiskDrive
    • Win32_DiskDriveToDiskPartition
    • Win32_DiskPartition
    • Win32_LogicalDiskToPartition
    • 的Win32_LogicalDisk

    前一段时间我写了一个Delphi sample about this,你可以检查一下,您也可以找到一个C#示例在此SO question

    +0

    非常感谢您的帮助。欣赏它 – 2014-12-03 19:42:17

    相关问题