0

我正在寻找一种在获取计算机上的设备列表时删除物理磁盘 0 的方法。

执行的命令如下:

ManagementObjectSearcher mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
        foreach (ManagementObject moDisk in mosDisks.Get())
        {
            driveList.Items.Add(moDisk["Model"].ToString());
        }

感谢您的帮助。

4

2 回答 2

0
ManagementObjectSearcher mosDisks = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
    foreach (ManagementObject moDisk in mosDisks.Get())
    {
        if(!moDisk["DeviceId"].ToString().Contains("PHYSICALDRIVE0"))
        {
            driveList.Items.Add(moDisk["Model"].ToString());
        }
    }

或者更简单地说,将您的 WQL 更改为:

SELECT * FROM Win32_DiskDrive WHERE NOT NAME LIKE '%PHYSICALDRIVE0'
于 2012-03-09T10:18:53.153 回答
0

您如何能够可靠地识别物理磁盘驱动器 0?

如果您注释掉添加到驱动器列表组合框,而是添加下面的代码片段,您可以看到 ManagementObject 的属性并决定使用哪个:

foreach(var prop in moDisk.Properties)  
{  
  Console.WriteLine("{0}: {1}", prop.Name, prop.Value);  
}  

例如(我没有足够的驱动器来确定)您可能想要排除索引 0,您可以通过在循环中检查而不添加到组合框或更新您的选择来完成:

select * from Win32_DiskDrive where Index <> 0

您也可以只选择型号而不是 *

于 2012-03-09T10:27:08.840 回答