国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

Visual C#中用WMI編寫網(wǎng)絡(luò)應(yīng)用程序

2024-07-21 02:29:13
字體:
供稿:網(wǎng)友
,歡迎訪問網(wǎng)頁設(shè)計(jì)愛好者web開發(fā)?! mi是windows management instrumentation的簡稱,即:視窗管理規(guī)范。在windows 2000或以后的版本中均安裝得有,nt4.0則需要安裝wmi的核心組件。通過wmi可以獲取遠(yuǎn)程計(jì)算機(jī)的各種數(shù)據(jù)信息,控制遠(yuǎn)程計(jì)算機(jī)的各種行為,而這就像操作本地機(jī)一樣方便、簡單。

  一.wmi簡介

  wmi從根本上說應(yīng)該為一種服務(wù),并且對于本地不同的用戶,wmi所有的權(quán)限也不一樣。計(jì)算機(jī)超級用戶可以為計(jì)算機(jī)中的每一個(gè)用戶,設(shè)定不同的wmi權(quán)限。在默認(rèn)狀態(tài)下,超級用戶擁有wmi的一切權(quán)限。提供wmi服務(wù)是通過程序"winmgmt.exe"來實(shí)現(xiàn)的??梢詮?system32/wbem"目錄中找到這個(gè)文件。

  既然是服務(wù),計(jì)算機(jī)使用者就可以享受這種服務(wù),同樣也可以關(guān)閉這種服務(wù)。具體的操作是:按順序打開【控制面板】|【管理工具】|【組件服務(wù)】。wmi服務(wù)在組件服務(wù)中的顯示名稱為"windows management instrumentation"。具體如下圖01所示:



圖01:組件服務(wù)窗口

  選中【名稱】欄中"windows management instrumentation",點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中,選擇【屬性】,在【啟動(dòng)類型】選擇框中選擇"已禁用",然后在單擊【停止】按鈕,這樣本地的wmi服務(wù)也就被關(guān)閉了。此時(shí)所有本地和遠(yuǎn)程的wmi調(diào)用均為非法。下圖為關(guān)閉wmi服務(wù)后的界面:



關(guān)閉wmi服務(wù)

  計(jì)算機(jī)的超級用戶在默認(rèn)狀態(tài)下?lián)碛衱mi的一切權(quán)限,并且可以為本地其他用戶設(shè)置wmi權(quán)限。具體操作是,按順序打開:【控制面板】|【管理工具】|【計(jì)算機(jī)管理】。選中【計(jì)算機(jī)管理】右邊的【服務(wù)和應(yīng)用程序】中的【wmi控件】。具體如圖02所示:



圖02:【計(jì)算機(jī)管理】對話框

  點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中,選擇【屬性】。彈出【wmi控件屬性】對話框中,選擇【安全】頁面。具體如圖03所示:



圖03: 打開wmi安全設(shè)置界面

  單擊圖9-4中【安全設(shè)置】按鈕,彈出【安全設(shè)置root】對話框,通過其中的【添加】和【刪除】按鈕,可以設(shè)定本地有哪些用戶擁有wmi權(quán)限,并通過【權(quán)限】選擇欄為每一個(gè)用戶設(shè)置不同的權(quán)限,具體如圖04所示:



圖04:設(shè)定本地用戶的wmi權(quán)限


  通過上圖,也可以發(fā)現(xiàn)計(jì)算機(jī)超級用戶在默認(rèn)狀態(tài)的wmi權(quán)限都是允許的,并且這些權(quán)限都是無法刪除的。

  二.visual c#中操作wmi的類庫簡介

  .net framework sdk對wmi提供了全面的支持,.net framework sdk為visual c#能夠操作wmi提供了一個(gè)專門的命名空間"system.management"。在命名空間"system.management"中提供了大量用以處理和wmi相關(guān)的類、接口和枚舉。

  命名空間"system.management"中的成員是非常復(fù)雜的,由于篇幅所限完全介紹這些成員是不可能的,也是沒有要的。根據(jù)我的經(jīng)驗(yàn),認(rèn)為要了解、掌握在visual c#中使用wmi,下面六個(gè)類應(yīng)該是學(xué)習(xí)的重點(diǎn),分別是connectionoptions、managementscope、objectquery、managementobjectsearcher、managementobjectcollection和managementobject。下面就簡單介紹一下六個(gè)類:

  ·connectionoptions類

  connectionoptions類主要的功能是為建立的wmi連接提供所需的所有設(shè)置。在利用wmi對遠(yuǎn)程計(jì)算機(jī)進(jìn)行操作的時(shí)候,首先要進(jìn)行wmi連接,wmi連接主要是使用的是managementscope 類,成功完成wmi連接就要提供遠(yuǎn)程計(jì)算機(jī)wmi用戶名和口令。connectionoptions類可以通過其屬性來提供這些信息。表01是connectionoptions類的一些主要屬性及其簡單的說明。

屬性 說明
authority 獲取或設(shè)置將用于驗(yàn)證指定用戶的權(quán)利。
locale 獲取或設(shè)置將用于連接操作的區(qū)域設(shè)置。
password 提供用于wmi連接操作的口令。
username提供用于wmi連接操作的用戶名。
     表01:connectionoptions類常用屬性及其說明

  其中最常用的屬性是password和username。

  ·managementscope 類

  通過managementscope類能夠建立和遠(yuǎn)程計(jì)算機(jī)(或者本地計(jì)算機(jī))的wmi連接,表示管理可操作范圍。創(chuàng)建wmi連接可以通過二種方法:

  ( 1 ) . 利用構(gòu)造函數(shù),當(dāng)使用下面構(gòu)造函數(shù)初始化managementscope 類實(shí)例,同時(shí)也就建立了wmi連接,具體如下:

public managementscope (
string path ,
connectionoptions options
) ;

  參數(shù):

  path managementscope的服務(wù)器和命名空間。

  options 包含有關(guān)連接的選項(xiàng)的 connectionoptions。

  使用構(gòu)造函數(shù)是有風(fēng)險(xiǎn)的,因?yàn)槿绻荒芨鶕?jù)提供的選項(xiàng)建立wmi連接,程序會(huì)程序異常,出現(xiàn)錯(cuò)誤。

  下列代碼是利用此構(gòu)造函數(shù)構(gòu)建建立managementscope實(shí)例,并建立于遠(yuǎn)程計(jì)算機(jī)majinhu的wmi連接:

system.management.connectionoptions conn = new connectionoptions ( ) ;
//設(shè)定用于wmi連接操作的用戶名
conn.username = "wmi用戶名";
//設(shè)定用戶的口令
conn.password = "此用戶名對應(yīng)口令";
system.management.managementscope ms = new managementscope("http://majinhu/root/cimv2", conn ) ;

  ( 2 ) . 利用managementscope中提供的connect方法:

  managementscope中的成員是非常少的,最常用的方法和屬性各一個(gè):常用屬性是options,主要為wmi建立提供參數(shù);常用方法是connect,通過它可以建立于遠(yuǎn)程計(jì)算機(jī)的wmi連接。下列是利用connect方法建立wmi連接的具體代碼:

system.management.connectionoptions conn = new connectionoptions ( ) ;
//設(shè)定用于wmi連接操作的用戶名
conn.username = "wmi用戶名";
//設(shè)定用戶的口令
conn.password = "此用戶名對應(yīng)口令";
system.management.managementscope ms = new managementscope("http://majinhu/root/cimv2" ) ;
ms.options = conn ;
ms.connect ( ) ;
//建立wmi連接

  ·objectquery類

  objectquery類或其派生類用于在managementobjectsearcher中指定查詢。程序中一般采用查詢字符串來構(gòu)造objectquery實(shí)例。其中的查詢字符串是一種類似sql語言的wql語言。下面的objectquery類構(gòu)造函數(shù)中最常見的一種,具體語法如下:

public objectquery (
string query
) ;

  參數(shù):

  query 查詢的字符串

  ·managementobjectsearcher類

  managementobjectsearcher主要是根據(jù)指定的查詢檢索wmi對象的集合。managementobjectsearcher組成成員也非常簡單,其方法get方法是非常重要的,managementobjectsearcher通過get方法進(jìn)行wmi查詢,并把得到的結(jié)果集合。get方法的返回值是一個(gè)managementobjectcollection實(shí)例,它包含匹配指定查詢的對象。

  表02是其managementobjectsearcher類的常用屬性及其說明。

屬性 說明
options 有關(guān)如何搜索對象的選項(xiàng)
query 在搜索器中調(diào)用的查詢
scope 在其中查找對象的范圍
      表02:managementobjectsearcher類常用屬性及其說明

  ·managementobjectcollection類

  managementobjectcollection類非常簡單,它主要表示 wmi 實(shí)例的不同集合其中包括命名空間、范圍和查詢觀察程序等。創(chuàng)建managementobjectcollection類沒有構(gòu)造函數(shù)。

  ·managementobject類

  managementobject類為單個(gè)管理對象或類。通過managementobject中的方法可以調(diào)用managementobject對應(yīng)的對象,從而執(zhí)行相應(yīng)的操作。managementobject類是一個(gè)內(nèi)容豐富的類,表03和表04分別是其常用的屬性和方法。

屬性 說明
classpath 對象的類的路徑。
options 檢索對象時(shí)要使用的其他信息。
path 對象的 wmi 路徑。
scope 此對象在其中駐留的范圍。
       表03:managementobject類常用屬性及其說明

方法說明
clone創(chuàng)建對象的一個(gè)副本。
copyto將對象復(fù)制到另一個(gè)位置。
delete 刪除對象。
get 綁定到管理對象。
getrelated 獲取與該對象(聯(lián)系對象)相關(guān)的對象的集合。
getrelationships獲取該對象的關(guān)聯(lián)的集合。
invokemethod 調(diào)用對應(yīng)的對象方法。
put 提交對對象所做的更改。
      表04:managementobject類常用方法及其說明

  下面就結(jié)合二個(gè)具體的示例來介紹visual c#中利用上述類,提供wmi掌握如何利用wmi編寫網(wǎng)絡(luò)應(yīng)用程序,所使用的類庫主要是使用了上面接收的這六個(gè)類。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通辽市| 芮城县| 镇平县| 柳河县| 江西省| 晋州市| 中卫市| 荔浦县| 秭归县| 磐安县| 清苑县| 丹江口市| 密云县| 聂拉木县| 北辰区| 丹棱县| 崇阳县| 唐河县| 天镇县| 广河县| 莒南县| 泾川县| 北票市| 犍为县| 诸暨市| 德保县| 黎城县| 维西| 科技| 唐海县| 隆德县| 固安县| 二手房| 襄樊市| 五峰| 化州市| 包头市| 吉林市| 南部县| 乃东县| 繁峙县|