2011-09-17 56 views
4

我試圖列出使用C#的WMI類中的所有可用字段。.NET中的WMI列表模式信息

我有被列出的所有表的可用等效的WMI

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from meta_class"); 

foreach (ManagementClass wmiClass in searcher.Get()) 
{ 
    Console.WriteLine(wmiClass["__CLASS"].ToString()); 
} 

最接近但是它似乎沒有爲場沒有這方面的等價物。

這是可能的還是僅僅是查閱參考手冊以查看所有可用字段的情況?

回答

7

如果你有一個WMI類的實例,那麼System.Management.ManagementBaseObject.Properties是所有屬性的列表(WMI不分隔屬性和字段 - 基於COM,它們都是屬性)。

ManagementClassManagementBaseObject派生所以它也有一個Properties樓盤,WMI類的屬性,所以要列出所有的屬性:

var wmiClass = new ManagementClass("Win32_ComputerSystem"); 
foreach (var prop in wmiClass.Properties) { 
    Console.WriteLine(prop.Name); 
} 

(該Properties集合的每個元素都是一個PropertyData實例有很多關於每個物業的信息。)