天天看點

Visual C#中用WMI編寫網絡應用程式

.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>

轉載請注明:部落格園