我在网上找到了一个代码,并且一直在尝试获取有关 mo [] 的更多信息。
我正在尝试获取ManagementObjectCollection中包含的所有信息。
由于 mo 中的参数正在查找我不知道的字符串值,如何在不知道其参数值的情况下获取所有值。或者,如果我想在ManagementObjectCollection
ManagementObjectSearcher objOSDetails = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
ManagementObjectCollection osDetailsCollection = objOSDetails.Get();
foreach( ManagementObject mo in osDetailsCollection )
{
_osName = mo["name"].ToString();// what other fields are there other than name
_osVesion = mo["version"].ToString();
_loginName = mo["csname"].ToString();
}
答案 0 :(得分:38)
查看您的WMI查询:
SELECT * FROM Win32_OperatingSystem
这意味着“获取Win32_OperatingSystem
类的所有实例并包含所有类属性”。这是一个线索,结果ManagementObject
是WMI Win32_OperatingSystem
类的包装器。请参阅class description,了解它有哪些属性,它们的含义以及决定在代码中实际需要使用哪些属性。
如果您需要迭代所有可用属性而不对其名称进行硬编码,请使用Properties
属性,如Giorgi suggested。这是一个例子:
foreach (ManagementObject mo in osDetailsCollection)
{
foreach (PropertyData prop in mo.Properties)
{
Console.WriteLine("{0}: {1}", prop.Name, prop.Value);
}
}
答案 1 :(得分:15)
首先使用the documentation,以便了解该属性的含义。试用WMI Code Creator工具。
答案 2 :(得分:3)
您可以使用Properties Property
遍历所有属性