【发布时间】:2016-01-10 16:18:21
【问题描述】:
我正在运行以下代码以尝试获取运行它的设备的 ChassisType。
string wmiQuery = string.Format(
"SELECT ChassisTypes FROM Win32_SystemEnclosure");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
foreach (ManagementObject obj in searcher.Get())
当我运行它并尝试将其转换为字符串时,它给了我一个空字符串。当我尝试检查 searcher.get() 在 Autos 中返回的内容时。它给了我一个评估超时,然后是一个异常......如果我让它运行它实际上会返回
我忽略了评估,因为当我尝试检查其他 WMI 查询时遇到相同的异常,并且我知道它们可以正常工作并返回所需的值。我也不知道从哪里开始,虽然它阻碍了故障排除。
我认为问题在于 ChassisTypes 属性是一个数组...但我不知道如何获取该值。我不能在我的“obj”管理对象上运行另一个 foreach,因为管理对象确实有一个 GetEnumerator。
关于如何 1. 对评估超时进行排序...甚至更好 2. 访问 WMI 数组属性的任何想法。
干杯
【问题讨论】: