.Net FrameWork SDK對WMI提供了全面的支援,.Net FrameWork SDK為Visual C#能夠操作WMI提供了一個專門的命名空間"System.Management"。在命名空間"System.Management"中提供了大量用以處理和WMI相關的類、接口和枚舉。
命名空間"System.Management"中的成員是非常複雜的,由于篇幅所限完全介紹這些成員是不可能的,也是沒有要的。根據我的經驗,認為要了解、掌握在Visual C#中使用WMI,下面六個類應該是學習的重點,分别是ConnectionOptions、ManagementScope、ObjectQuery、ManagementObjectSearcher、ManagementObjectCollection和ManagementObject。下面就簡單介紹一下六個類:
·ConnectionOptions類
ConnectionOptions類主要的功能是為建立的WMI連接配接提供所需的所有設定。在利用WMI對遠端計算機進行操作的時候,首先要進行WMI連接配接,WMI連接配接主要是使用的是ManagementScope 類,成功完成WMI連接配接就要提供遠端計算機WMI使用者名和密碼。ConnectionOptions類可以通過其屬性來提供這些資訊。表01是ConnectionOptions類的一些主要屬性及其簡單的說明。
屬性
說明
Authority
擷取或設定将用于驗證指定使用者的權利。
Locale
擷取或設定将用于連接配接操作的區域設定。
Password
提供用于WMI連接配接操作的密碼。
Username
提供用于WMI連接配接操作的使用者名。
表01:ConnectionOptions類常用屬性及其說明
其中最常用的屬性是Password和Username。
·ManagementScope 類
通過ManagementScope類能夠建立和遠端計算機(或者本地計算機)的WMI連接配接,表示管理可操作範圍。建立WMI連接配接可以通過二種方法:
( 1 ) . 利用構造函數,當使用下面構造函數初始化ManagementScope 類執行個體,同時也就建立了WMI連接配接,具體如下:
public ManagementScope (
string path ,
ConnectionOptions options
) ;
參數:
path ManagementScope的伺服器和命名空間。
options 包含有關連接配接的選項的 ConnectionOptions。
使用構造函數是有風險的,因為如果不能根據提供的選項建立WMI連接配接,程式會程式異常,出現錯誤。
下列代碼是利用此構造函數建構建立ManagementScope執行個體,并建立于遠端計算機majinhu的WMI連接配接:
System.Management.ConnectionOptions Conn = new ConnectionOptions ( ) ;
//設定用于WMI連接配接操作的使用者名
Conn.Username = "WMI使用者名";
//設定使用者的密碼
Conn.Password = "此使用者名對應密碼";
System.Management.ManagementScope Ms = new ManagementScope("\\majinhu\root\cimv2", Conn ) ;
( 2 ) . 利用ManagementScope中提供的Connect方法:
ManagementScope中的成員是非常少的,最常用的方法和屬性各一個:常用屬性是Options,主要為WMI建立提供參數;常用方法是Connect,通過它可以建立于遠端計算機的WMI連接配接。下列是利用Connect方法建立WMI連接配接的具體代碼:
System.Management.ManagementScope Ms = new ManagementScope("\\majinhu\root\cimv2" ) ;
Ms.Options = Conn ;
Ms.Connect ( ) ;
//建立WMI連接配接
·ObjectQuery類
ObjectQuery類或其派生類用于在ManagementObjectSearcher中指定查詢。程式中一般采用查詢字元串來構造ObjectQuery執行個體。其中的查詢字元串是一種類似SQL語言的WQL語言。下面的ObjectQuery類構造函數中最常見的一種,具體文法如下:
public ObjectQuery (
string query
query 查詢的字元串
·ManagementObjectSearcher類
ManagementObjectSearcher主要是根據指定的查詢檢索WMI對象的集合。ManagementObjectSearcher組成成員也非常簡單,其方法Get方法是非常重要的,ManagementObjectSearcher通過Get方法進行WMI查詢,并把得到的結果集合。Get方法的傳回值是一個ManagementObjectCollection執行個體,它包含比對指定查詢的對象。
表02是其ManagementObjectSearcher類的常用屬性及其說明。
Options
有關如何搜尋對象的選項
Query
在搜尋器中調用的查詢
Scope
在其中查找對象的範圍
表02:ManagementObjectSearcher類常用屬性及其說明
·ManagementObjectCollection類
ManagementObjectCollection類非常簡單,它主要表示 WMI 執行個體的不同集合其中包括命名空間、範圍和查詢觀察程式等。建立ManagementObjectCollection類沒有構造函數。
·ManagementObject類
ManagementObject類為單個管理對象或類。通過ManagementObject中的方法可以調用ManagementObject對應的對象,進而執行相應的操作。ManagementObject類是一個内容豐富的類,表03和表04分别是其常用的屬性和方法。
ClassPath
對象的類的路徑。
檢索對象時要使用的其他資訊。
Path
對象的 WMI 路徑。
此對象在其中駐留的範圍。
表03:ManagementObject類常用屬性及其說明
方法
Clone
建立對象的一個副本。
CopyTo
将對象複制到另一個位置。
Delete
删除對象。
Get
綁定到管理對象。
GetRelated
擷取與該對象(聯系對象)相關的對象的集合。
GetRelationships
擷取該對象的關聯的集合。
InvokeMethod
調用對應的對象方法。
Put
送出對對象所做的更改。
表04:ManagementObject類常用方法及其說明
下面就結合二個具體的示例來介紹Visual C#中利用上述類,提供WMI掌握如何利用WMI編寫網絡應用程式,所使用的類庫主要是使用了上面接收的這六個類。
部落格園大道至簡
<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>
轉載請注明:部落格園