互聯(lián)網(wǎng)是高科技的產(chǎn)物,是歷史發(fā)展冗锁、社會(huì)進(jìn)步齐唆、人類智慧的結(jié)晶;是人類迄今所擁有的容量最大、內(nèi)容最面冻河、傳遞速度最快的信息中心箍邮。互聯(lián)網(wǎng)發(fā)展衍生了與之相關(guān)技術(shù)的發(fā)展與成熟叨叙。C#語(yǔ)言基礎(chǔ)視頻教程下載渠道在網(wǎng)上數(shù)見(jiàn)不鮮锭弊。下面讓我們來(lái)了解一下Net
Visual C#中用WMI編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序的內(nèi)容。
WMI是Windows Management Instrumentation的簡(jiǎn)稱擂错,即:視窗管理規(guī)范味滞。在Windows
2000或以后的版本中均安裝得有,NT4.0則需要安裝WMI的核心組件。通過(guò)WMI可以獲取遠(yuǎn)程計(jì)算機(jī)的各種數(shù)據(jù)信息剑鞍,控制遠(yuǎn)程計(jì)算機(jī)的各種行為刹悴,而這就像操作本地機(jī)一樣方便、簡(jiǎn)單攒暇。
一.WMI簡(jiǎn)介
WMI從根本上說(shuō)應(yīng)該為一種服務(wù),并且對(duì)于本地不同的用戶子房,WMI所有的權(quán)限也不一樣形用。計(jì)算機(jī)超級(jí)用戶可以為計(jì)算機(jī)中的每一個(gè)用戶,設(shè)定不同的WMI權(quán)限证杭。在默認(rèn)狀態(tài)下田度,超級(jí)用戶擁有WMI的一切權(quán)限。提供WMI服務(wù)是通過(guò)程序"WinMgmt.exe"來(lái)實(shí)現(xiàn)的解愤≌蚪龋可以從"System32\Wbem"目錄中找到這個(gè)文件。
既然是服務(wù)送讲,計(jì)算機(jī)使用者就可以享受這種服務(wù)奸笤,同樣也可以關(guān)閉這種服務(wù)。具體的操作是:按順序打開(kāi)【控制面板】|【管理工具】|【組件服務(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ī)的超級(jí)用戶在默認(rèn)狀態(tài)下?lián)碛蠾MI的一切權(quán)限父虑,并且可以為本地其他用戶設(shè)置WMI權(quán)限。具體操作是券册,按順序打開(kāi):【控制面板】|【管理工具】|【計(jì)算機(jī)管理】频轿。選中【計(jì)算機(jī)管理】右邊的【服務(wù)和應(yīng)用程序】中的【W(wǎng)MI控件】。具體如圖02所示:
圖02:【計(jì)算機(jī)管理】對(duì)話框
點(diǎn)擊鼠標(biāo)右鍵烁焙,在彈出的菜單中航邢,選擇【屬性】。彈出【W(wǎng)MI控件屬性】對(duì)話框中骄蝇,選擇【安全】頁(yè)面膳殷。具體如圖03所示:
圖03: 打開(kāi)WMI安全設(shè)置界面
單擊圖9-4中【安全設(shè)置】按鈕,彈出【安全設(shè)置Root】對(duì)話框,通過(guò)其中的【添加】和【刪除】按鈕赚窃,可以設(shè)定本地有哪些用戶擁有WMI權(quán)限册招,并通過(guò)【權(quán)限】選擇欄為每一個(gè)用戶設(shè)置不同的權(quán)限,具體如圖04所示:
圖04:設(shè)定本地用戶的WMI權(quán)限
通過(guò)上圖勒极,也可以發(fā)現(xiàn)計(jì)算機(jī)超級(jí)用戶在默認(rèn)狀態(tài)的WMI權(quán)限都是允許的是掰,并且這些權(quán)限都是無(wú)法刪除的。
二.Visual C#中操作WMI的類庫(kù)簡(jiǎn)介
.Net FrameWork SDK對(duì)WMI提供了全面的支持辱匿,.Net FrameWork SDK為Visual
C#能夠操作WMI提供了一個(gè)專門(mén)的命名空間"System.Management"键痛。在命名空間"System.Management"中提供了大量用以處理和WMI相關(guān)的類、接口和枚舉匾七。
命名空間"System.Management"中的成員是非常復(fù)雜的絮短,由于篇幅所限完全介紹這些成員是不可能的,也是沒(méi)有要的昨忆。根據(jù)我的經(jīng)驗(yàn)丁频,認(rèn)為要了解、掌握在Visual
C#中使用WMI邑贴,下面六個(gè)類應(yīng)該是學(xué)習(xí)的重點(diǎn)席里,分別是ConnectionOptions、ManagementScope拢驾、ObjectQuery胁勺、ManagementObjectSearcher、ManagementObjectCollection和ManagementObject独旷。下面就簡(jiǎn)單介紹一下六個(gè)類:
·ConnectionOptions類
ConnectionOptions類主要的功能是為建立的WMI連接提供所需的所有設(shè)置署穗。在利用WMI對(duì)遠(yuǎn)程計(jì)算機(jī)進(jìn)行操作的時(shí)候,首先要進(jìn)行WMI連接嵌洼,WMI連接主要是使用的是ManagementScope
類案疲,成功完成WMI連接就要提供遠(yuǎn)程計(jì)算機(jī)WMI用戶名和口令。ConnectionOptions類可以通過(guò)其屬性來(lái)提供這些信息麻养。表01是ConnectionOptions類的一些主要屬性及其簡(jiǎn)單的說(shuō)明褐啡。
其中最常用的屬性是Password和Username。
·ManagementScope 類
通過(guò)ManagementScope類能夠建立和遠(yuǎn)程計(jì)算機(jī)(或者本地計(jì)算機(jī))的WMI連接鳖昌,表示管理可操作范圍备畦。創(chuàng)建WMI連接可以通過(guò)二種方法:
( 1 ) . 利用構(gòu)造函數(shù),當(dāng)使用下面構(gòu)造函數(shù)初始化ManagementScope 類實(shí)例许昨,同時(shí)也就建立了WMI連接懂盐,具體如下:
參數(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連接:
( 2 ) . 利用ManagementScope中提供的Connect方法:
ManagementScope中的成員是非常少的,最常用的方法和屬性各一個(gè):常用屬性是Options捶惜,主要為WMI建立提供參數(shù);常用方法是Connect田藐,通過(guò)它可以建立于遠(yuǎn)程計(jì)算機(jī)的WMI連接。下列是利用Connect方法建立WMI連接的具體代碼:
·ObjectQuery類
ObjectQuery類或其派生類用于在ManagementObjectSearcher中指定查詢吱七。程序中一般采用查詢字符串來(lái)構(gòu)造ObjectQuery實(shí)例坞淮。其中的查詢字符串是一種類似SQL語(yǔ)言的WQL語(yǔ)言。下面的ObjectQuery類構(gòu)造函數(shù)中最常見(jiàn)的一種陪捷,具體語(yǔ)法如下:
參數(shù):
query 查詢的字符串
·ManagementObjectSearcher類
ManagementObjectSearcher主要是根據(jù)指定的查詢檢索WMI對(duì)象的集合。ManagementObjectSearcher組成成員也非常簡(jiǎn)單诺擅,其方法Get方法是非常重要的市袖,ManagementObjectSearcher通過(guò)Get方法進(jìn)行WMI查詢,并把得到的結(jié)果集合烁涌。Get方法的返回值是一個(gè)ManagementObjectCollection實(shí)例苍碟,它包含匹配指定查詢的對(duì)象。
表02是其ManagementObjectSearcher類的常用屬性及其說(shuō)明撮执。
·ManagementObjectCollection類
ManagementObjectCollection類非常簡(jiǎn)單微峰,它主要表示 WMI
實(shí)例的不同集合其中包括命名空間、范圍和查詢觀察程序等抒钱。創(chuàng)建ManagementObjectCollection類沒(méi)有構(gòu)造函數(shù)蜓肆。
·ManagementObject類
ManagementObject類為單個(gè)管理對(duì)象或類。通過(guò)ManagementObject中的方法可以調(diào)用ManagementObject對(duì)應(yīng)的對(duì)象谋币,從而執(zhí)行相應(yīng)的操作仗扬。ManagementObject類是一個(gè)內(nèi)容豐富的類,表03和表04分別是其常用的屬性和方法蕾额。
下面就結(jié)合二個(gè)具體的示例來(lái)介紹Visual
C#中利用上述類早芭,提供WMI掌握如何利用WMI編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序,所使用的類庫(kù)主要是使用了上面接收的這六個(gè)類诅蝶。