C# ManagementObjectSearcher.Get()引发异常

C# ManagementObjectSearcher.Get()引发异常,c#,windows,wmi,system.diagnostics,system.management,C#,Windows,Wmi,System.diagnostics,System.management,执行以下代码时,searcher.Get()抛出异常“不受支持”。即使以管理员身份运行,问题仍然存在。这是用VS2010编译的。该异常发生在XP、Win7和Win8.1上。有什么想法吗 ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSSerial_PortName"); foreach (ManagementObject queryObj in sea

执行以下代码时,
searcher.Get()
抛出异常“不受支持”。即使以管理员身份运行,问题仍然存在。这是用VS2010编译的。该异常发生在XP、Win7和Win8.1上。有什么想法吗

 ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSSerial_PortName");
 foreach (ManagementObject queryObj in searcher.Get())
 {
 }

在引发异常的计算机中,至少安装了一个COM端口?@RRUZ非常有用。谢谢。你为什么要否决这个问题?这些评论表明,有一个WMI查询可以在该查询给出串行端口名称之前以安全的方式检测串行端口的存在。有人想做一些研究并提供一个好的答案吗?