我正在尝试使用C#列出WMI类上的所有可用字段。
我最接近的是列出WMI中所有可用的等价表
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from meta_class");
foreach (ManagementClass wmiClass in searcher.Get())
{
Console.WriteLine(wmiClass["__CLASS"].ToString());
}
但是看起来这些字段没有相应的内容。
这是可能的,还是只是查阅参考手册以查看所有可用字段?
答案 0 :(得分:7)
如果你有一个WMI类的实例,那么System.Management.ManagementBaseObject.Properties
是所有属性的列表(WMI不会分隔属性和字段 - 基于COM它们都是属性)。
ManagementClass
派生自ManagementBaseObject
,因此它还有Properties
属性列出了WMI类的属性,因此要列出所有属性:
var wmiClass = new ManagementClass("Win32_ComputerSystem");
foreach (var prop in wmiClass.Properties) {
Console.WriteLine(prop.Name);
}
(Properties
集合的每个元素都是PropertyData
个实例,其中包含有关每个属性的大量信息。)