有時(shí)NET Framework獲得的安全信息并不完整。另一種方法是使用Windows Management Instrumentation(WMI)來獲得所需要的安全信息,如程序清單User Permissions Using UMI示例所示。此例從組的角度出發(fā),而不是從用戶的角度出發(fā),來查看用戶組的關(guān)系。開始編寫該示例程序之前,要先創(chuàng)建一個(gè)與界面相似的Windows Forms應(yīng)用程序。
  您必須知道WMI不是一個(gè)托管接口-它基于本地代碼(native code)和Component Object Model(COM)。借助于WMIC(Windows Management Interface Command line)工具可通過命令行直接使用WMI的這種構(gòu)成方式?jīng)Q定了要獲取所希望的結(jié)果,就不得不創(chuàng)建一組嵌套循環(huán)代碼。程序清單是一個(gè)簡(jiǎn)單的WMI局域網(wǎng)控制應(yīng)用程序。
  NET Framework中有一些方法可用于創(chuàng)建WMI查詢。最簡(jiǎn)單的方法就是創(chuàng)建一個(gè)Select Query對(duì)象,例如Group Query,并傳入一個(gè)WMI類。此例中使用的是Win32 Group類。
  創(chuàng)建查詢只是地域。接下來必須使用ManagementQbjectSearcher對(duì)象Searcher執(zhí)行查詢。NET Framework可為您創(chuàng)建所需要的任何查詢,但如果查詢不正確,則會(huì)導(dǎo)致查詢失敗。當(dāng)您使用ManagementObjectSearcher對(duì)象執(zhí)行查詢出現(xiàn)了錯(cuò)誤時(shí),調(diào)試器指出的錯(cuò)誤地點(diǎn)有時(shí)并不一定是真正產(chǎn)生錯(cuò)誤的代碼。
  查詢實(shí)際上是在for循環(huán)中執(zhí)行的。通過調(diào)用Searcher.GetO可以獲得一條組條目,然后將這一條目存放到Management Object中,即 ThisGroup。ThisGroup包含了很多有用的信息,例如組名稱、SID和狀態(tài)信息。
  此時(shí),您得到了組列表,但并不是每個(gè)用戶都是組的成員。為了得到用戶列表,必須為另一個(gè)類Win32 Group User創(chuàng)建一個(gè)查詢。該查詢的輸出結(jié)果實(shí)際上是一個(gè)由兩個(gè)字符串組成的對(duì)象數(shù)組。
  輸出結(jié)果雖然在其中是多行顯示,但在調(diào)試器中看到的結(jié)果都在一行顯示。這兩個(gè)字符串是Group Component和PartComponent。GroupComponent包含了組信息的完整路徑,此例中就是Administrator。查詢的這兩個(gè)記過使代碼顯得有些復(fù)雜,但通過在for循環(huán)中將組名稱與Group Component(由Group Part表示)中的名稱相比較,就可以很容易地找到某個(gè)組中的用戶。
  一旦代碼找到了與當(dāng)前組相關(guān)的某個(gè)用戶,就會(huì)將Part Component的信息輸出。因?yàn)槠浣Y(jié)果中包含了完整路徑,所以需要使用Substring來截取所需要的信息。

 

 

★關(guān)于WorkWin公司電腦監(jiān)控軟件★

WorkWin的使命是打造Work用途的Windows 電腦系統(tǒng),有效規(guī)范員工上網(wǎng)行為,讓老板知道員工每天在做什么(監(jiān)控包括屏幕、上網(wǎng)在內(nèi)的一舉一動(dòng)),限制員工不能做什么(禁止網(wǎng)購(gòu)、游戲、優(yōu)盤等)。

WorkWin基于純軟件設(shè)計(jì),非常容易使用,無需添加或改動(dòng)任何硬件,使用一臺(tái)管理機(jī)監(jiān)控全部員工機(jī)電腦。歷經(jīng)南京網(wǎng)亞十余年精心打造,此時(shí)此刻每天都有成千上萬企業(yè)電腦正在運(yùn)行WorkWin,選擇WorkWin選擇“贏”。

WorkWin介紹

WorkWin監(jiān)控首頁 短視頻講解 下載免費(fèi)試用版

版權(quán)所有,南京網(wǎng)亞計(jì)算機(jī)有限公司 。本文鏈接地址: 使用局域網(wǎng)控制Framework示例程序