c#
  • wmi
  • wmi-query
  • 2014-11-21 102 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

    相關問題