在上一節中,我們已經接觸到了訪問管理信息中的WMI類名稱,如:
diskman = new ManagementClass("Win32_LogicalDisk")
”Win32_LogicalDisk”就是代表WMI類中的Win32_LogicalDisk類,在本節我們將瞭解到更多的關於WMI類的內容.WMI提供了一系列的WMI類供程序人員使用,通過這些WMI類,我們就可以進行類似於查詢等關於WMI的操作,由於WMI類涉及到系統的各個方面,所以就將其分7個子類,分別是:
n WMI System Classes
n WMI System Properties
n Win32 Classes
n CIM Classes
n Standard Consumer Classes
n MSFT Classes
n MSMCA Classes
n WMI C++ Classes
由於篇幅原因,在本節就只講解Win32_Classes裏面的類,其餘的分類可以自己去查找MSDN中的內容.
Win32_Classes子類中的類位於root/cimv2命名空間中,包含了大多數與系統操作相關的類,如前面所述的Win32_LogicalDisk類,後面將會介紹到的Win32_Process類等.在Win32_Classes子類裏面又細分爲5個大,分別是:
n Computer system hardware (計算機系統硬件類)
n Operating system (操作系統類)
n Installed applications (安裝程序類)
n WMI service management (WMI服務管理類)
n Performance counters (性能計數器類)
下面就來一一介紹這些子類的作用及其主要類成員.
Computer system hardware
Computer system hardware這個子類中包含了與硬件信息相關的類,如 Win32_CDROMDrive, Win32_DiskDrive, Win32_BIOS, Win32_NetworkAdapter等,通過使用這些類的實例化對象,我們就可以知道此計算機的硬件組成,此時此刻的硬件信息,比如我們通過WQL方式查詢得到當前計算機的Win32_DiskDrive類的實例化對象,就可以知道當前計算機的磁盤驅動器的名稱,它的設備號,它的型號,以及它的容量大小等.以下是通過程序方式得到上述信息:
*****************************************************
//MSDN中Win32_DiskDrive類的定義……
class Win32_DiskDrive : CIM_DiskDrive
{
string DeviceID;
string Model;
string Name;
uint64 Size;
……
};
*****************************************************
//獲取本機磁盤驅動器的屬性
public static void FetchDiskDiveProperty()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");
foreach (ManagementObject diskDrives in searcher.Get())
{
Console.WriteLine("diskDrives Name = " + diskDrives["Name"]);
Console.WriteLine("diskDrives DeviceID = " + diskDrives["DeviceID"]);
Console.WriteLine("diskDrives Model = " + diskDrives["Model"]);
Console.WriteLine("diskDrives Size = " + diskDrives["Size"]);
}
}
*****************************************************
//上述代碼是通過WQL方式實現管理對象的信息查詢的,
*****************************************************
Performance counters
Installed applications
Installed applications子類中包含了系統中通過Windows Installer方式安裝軟件的相關的類,如Win32_Binary, Win32_RegistryAction類等,通過使用這些類的實例化對象,我們就可以得到通過Windows Installer方式安裝的軟件的文件說明,安裝用到過的文件,寫入註冊表的信息等等.其對象的屬性的方法同上,即通過WQL方式查詢操作.
WMI service management
WMI service management子類中了有關管理WMI服務相關的類,這些類是用來管理WMI服務它自身的,並不是用來管理計算機系統或是組織網絡的,它的任務包括配置WMI,管理WMI的操作,使其處於最佳的工作狀態.它的類成員不多,只有三個, Win32_MethodParameterClass, Win32_WMISetting, Win32_WMIElementSetting.
Performance counters
Performance counters子類包含系統性能計數器數據及格式化後的性能計數器數據的類的成員.如Win32_PerfFormattedData_PerfOS_Memory,Win32_PerfRawData_PerfOS_Memory,Win32_PerfFormattedData_PerfProc_Process, Win32_PerfFormattedData_Tcpip_TCP等等.我們可能通過這在的實例化對象得到我們想要得到的系統性能數據,並且能夠根據自己的需要將數據通過不同的形式顯示出來.