下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
四、了解WMI的體系結(jié)構(gòu)上一講我們介紹了用Moniker名字法建立WMI服務(wù)連接的方法,在這個(gè)方法中我們講了Moniker名字法的連接字符串由5部分組成:前綴:"winmgmts:";安全設(shè)置:"(......}!";計(jì)算機(jī)名字:"\\ComputerName\";CIM命名空間:"root\cimv2";WMI類名:":WMIClassesName"。因?yàn)闀r(shí)間原因,沒有舉出相應(yīng)的例子,本節(jié)內(nèi)容比較少,又比較枯燥,所以我們舉兩個(gè)例子說明一下Moniker名字法的連接字符串使用方法。首先我們來看一個(gè)關(guān)機(jī)的例程(本論壇中已經(jīng)有很多帖子討論過這個(gè)問題,一般采用API方法和命令方法,這里給出1個(gè)WMI方法),與上面的例程一樣,首先建立一個(gè)新工程具有Form1窗體,在菜單中的【工程】一【引用】下,添加'MicrosoftWMIScriptingV1.1Library",然后在代碼窗口添加如下代碼(例程4):OptionExplicitDimobjSWbemServicesAsSWbemServicesDimobjSWbemObjectSetAsSWbemObjectSetDimobjSWbemObjectAsSWbemObjectPrivateConstWMI_LOGOFF=0&'退出(注銷)PrivateConstWMI_SHUTDOWN=1&'關(guān)機(jī)PrivateConstWMI_REBOOT=2&'重啟動PrivateConstWMI_FORCE=4&'強(qiáng)制退出,即不通知現(xiàn)在活動應(yīng)用程序讓其先自我關(guān)閉PrivateConstWMI_POWEROFF=8&'關(guān)閉電源'DimstrComputerAsString,strNameSpaceAsString,strClassAsStringPrivateSubForm_Load()SetobjSWbemServices=GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!")SetobjSWbemObjectSet=objSWbemServices.ExecQuery("Select*fromWin32_OperatingSystem")ForEachobjSWbemObjectInobjSWbemObjectSetobjSWbemObject.Win32ShutdownWMI_POWEROFF,0&'關(guān)閉電源NextEndSub例程4通過WMI類Win32_OperatingSystem的Win32Shutdown方法關(guān)閉計(jì)算機(jī),我們可以看到Moniker名字法的連接字符串只包含了2個(gè)部分:前綴:"winmgmts:";安全設(shè)置:"{impersonationLevel=impersonate,(Shutdown)}!",即身份模擬水平(impersonationLevel)為impersonate(=3),特權(quán)的取值為Shutdown(=18)。省略了:計(jì)算機(jī)名字、CIM命名空間,也沒有直接建立WMI類。實(shí)際上"winmgmts:{impersonationLevel=impersonate,(Shutdown)}!"與"winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2"是完全一樣的(當(dāng)然前提是CIM缺省命名空間為root\cimv2)。對這個(gè)程序稍加修改,還可以實(shí)現(xiàn)退出(注銷)、關(guān)機(jī)(不關(guān)閉電源)、重啟動等,如果具有遠(yuǎn)程計(jì)算機(jī)的管理員權(quán)限,還可以關(guān)閉遠(yuǎn)程計(jì)算機(jī)。下面我們再舉1個(gè)例子。我們看到前面的例程2(枚舉系統(tǒng)所有服務(wù))中是利用WMI類Win32_Service獲得系統(tǒng)所有服務(wù)對象實(shí)例,并且通過讀取DisplayName、State、StartMode、PathName和StartName將服務(wù)名稱、服務(wù)的狀態(tài)、服務(wù)的啟動方式、服務(wù)程序的路徑和服務(wù)的登錄身份顯示到列表中,那Win32_Service究竟有那些屬性呢?當(dāng)然我們可以通過微軟的資料查閱出每個(gè)WMI類的各項(xiàng)屬性,其實(shí)我們也可以通過編程列出各個(gè)WMI類的各項(xiàng)屬性,這個(gè)例子就是用來列出Win32_Service的所有屬性的名字。與上面的例程一樣,首先建立一個(gè)新工程具有Forml窗體,在菜單中的【工程】一【引用】下,添加“MicrosoftWMIScriptingV1.1Library”,然后在代碼窗口添加1個(gè)Listl控件,代碼如下(例程5):OptionExplicitDimobjSWbemObjectAsSWbemObjectDimobjSWbemPropertyAsSWbemPropertyDimstrComputerAsString,strNameSpaceAsString,strClassAsStringPrivateSubForm_Load()strComputer="."'計(jì)算機(jī)名,.為本機(jī)strNameSpace="root\cimv2"'指定命名空間為root\cimv2strClass="Win32_Service"'指定類為Win32_ServiceMe.Caption=strClass&"類的屬性名稱"SetobjSWbemObject=GetObject("winmgmts:\\"&strComputer&"\"&strNameSpace&":"&strClass)'建立指定計(jì)算機(jī)、命名空間、指定類的引用ForEachobjSWbemPropertyInobjSWbemObject.Properties_List1.AddItemobjSWbemProperty.Name'將Win32_Service的屬性名稱添加到List1NextSetobjSWbemObject=NothingSetobjSWbemProperty=NothingEndSub例程5運(yùn)行后將列出Win32_Service的所有屬性的名字,利用這個(gè)例程只要用其他的WMI類(例如前面已經(jīng)提到過的Win32_Process或Win32_OperatingSystem)替換Win32_Service,就可以得到對應(yīng)的WMI類的所有屬性的名字。這里我們還是來看一下Moniker名字法的連接字符串包含了4個(gè)部分,與前面不同的是我們這個(gè)例程中出現(xiàn)了第5部分:類名":Win32_Service",因此GetObject返回一個(gè)Win32_Service類對象,然后我們枚舉這個(gè)對象的Properties—屬性(實(shí)際上是一個(gè)集合,包含了SWbemProperty對象)中的objSWbemProperty對象的Name屬性(這是1個(gè)字符串)。這句話是在有些拗口,意思可能也不容易一下子理解,不過我們后面還會進(jìn)一步講述這個(gè)問題。例子就講這些了,接下去我們還是回到我們本節(jié)的主題,首先我們看看WMI的體系結(jié)構(gòu)。WMI體系結(jié)構(gòu)由三個(gè)主層組成,如下圖所示:向訕儲存庫%E^slfimRoot%\svstefin3^wbem^R&positary\FS\objects,dataWMI向訕儲存庫%E^slfimRoot%\svstefin3^wbem^R&positary\FS\objects,dataWMI基礎(chǔ)基構(gòu)氏管資濯的本風(fēng)鹿用程甲娠羿搓D擇管登源[應(yīng)用程序,設(shè)備系統(tǒng))ICIM對寒管理爵4CIM0M}WMI眼有%Sy5temRoot%\sya-tenn3BwbeEWnrngmt睥序WMI腳本庫^SysterrRpgt用脾對32\wban^ufaBnndlGp.dll州附提供起序^SyeteiriReia明卿glaringK^bemft'.dllWMI使用者WMI劇木?托管資源?WMI基礎(chǔ)結(jié)構(gòu)?使用者托管資源托管資源是任意邏輯或物理組件,通過使用WMI進(jìn)行公開和管理??梢允褂肳MI管理的Windows資源包括:計(jì)算機(jī)系統(tǒng)、磁盤、外圍設(shè)備、事件日志、文件、文件夾、文件系統(tǒng)、網(wǎng)絡(luò)組件、操作系統(tǒng)子系統(tǒng)、性能計(jì)數(shù)器、打印機(jī)、進(jìn)程、注冊表設(shè)置、安全性、服務(wù)、共享、SAM用戶和組、ActiveDirectory、Windows安裝程序、Windows驅(qū)動程序模式(WDM)設(shè)備驅(qū)動程序,以及SNMP管理信息基(MIB)數(shù)據(jù)等。WMI托管資源通過一個(gè)提供程序與WMI通訊。WMI基礎(chǔ)結(jié)構(gòu)中間層是WMI基礎(chǔ)結(jié)構(gòu)。WMI由四個(gè)主要組件構(gòu)成:公共信息模型對象管理器(CommonInformationModelObjectManager,CIMOM)、公共信息模型(CommonInformationModel,CIM)儲存庫,以及提供程序。這三個(gè)WMI組件共同提供通過其定義、公開、訪問和檢索配置和管理數(shù)據(jù)的基礎(chǔ)結(jié)構(gòu),為了敘述和理解方便,我們在本文中就將這三個(gè)組件通稱為CIM儲存庫。第四個(gè)組件是WMI腳本對象庫,就是我們前面幾個(gè)例程都必須引用的“MicrosoftWMIScriptingV1.1Library”對象庫,就我們來說一就是使用者,首先就是通過WMI腳本庫與CIM儲存庫打交道去管理系統(tǒng)的各種托管資源。因此我們重點(diǎn)關(guān)注的應(yīng)該是CIM儲存庫和WMI腳本對象庫。CIM儲存庫WMI的基本思想是一可以用一個(gè)架構(gòu)統(tǒng)一表示來自不同源的配置和管理信息°CIM就是這個(gè)架構(gòu),還調(diào)用了模型化托管環(huán)境和定義每個(gè)由WMI公開的數(shù)據(jù)塊的對象儲存庫或類存儲。該架構(gòu)基于DMTF公共信息模型標(biāo)準(zhǔn)。CIM由類組成。類是一個(gè)WMI托管資源的一個(gè)模型。CIM類通常表示動態(tài)資源,就是說托管資源的實(shí)例并不存儲在CIM中,而是通過基于使用者請求的提供程序動態(tài)檢索。其原因很簡單,大多數(shù)WMI托管資源的操作狀態(tài)更改很頻繁,因而必須按需讀取以確保檢索的是最新的信息,就象我們例程1中的進(jìn)程和例程2中的服務(wù)隨時(shí)都在變動的。注在CIM的上下文中,儲存庫這一術(shù)語有些被誤解。盡管CIM是一個(gè)儲存庫,而且能夠存儲靜態(tài)數(shù)據(jù),但其主要角色是存儲托管資源的模型。CIM類是分級組織的,每一級的子類從父類繼承。DMTF維護(hù)一組核心和公共基類,系統(tǒng)和應(yīng)用程序軟件開發(fā)人員(如Microsoft的那些)從這些類派生和創(chuàng)建系統(tǒng)(或應(yīng)用程序)特定的擴(kuò)展類。類被分組到命名空間中,命名空間是表示一個(gè)特定的管理區(qū)域的類邏輯組。例如,命名空間root\cimv2包括大部分表示通常與計(jì)算機(jī)和操作系統(tǒng)相關(guān)聯(lián)的資源的類。在前面的例程中使用的類(Win32_Process、Win32_Service和為Win32_ShortcutFile)駐留在命名空間root\cimv2,它們只是在CIM中定義的數(shù)百個(gè)類中的三個(gè)。CIM類由屬性和方法構(gòu)成。屬性描述WMI托管資源的配置和狀態(tài),方法是在WMI托管資源上執(zhí)行操作的可執(zhí)行函數(shù)。注不要將由CIM定義的方法和屬性與由WMI腳本對象庫中的自動化對象提供的方法和屬性相混淆。WMI腳本對象庫WMI腳本對象庫提供一組應(yīng)用對象集,WMI腳本對象庫中的這些對象為WMI基礎(chǔ)結(jié)構(gòu)提供一個(gè)一致且統(tǒng)一的模型。如前面所示,一旦您了解如何使用WMI腳本對象庫檢索一個(gè)托管資源類型,您就可以輕松
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年環(huán)保材料貼牌生產(chǎn)與技術(shù)支持合同
- 2025年度木工企業(yè)員工績效考核與激勵(lì)合同4篇
- 二零二五年度水利樞紐工程塊石供應(yīng)合同模板下載3篇
- 二零二五年度商業(yè)用途二房東房屋租賃經(jīng)營合同2篇
- 2025年度挖掘機(jī)械買賣與環(huán)保節(jié)能合同3篇
- 二零二五年度智能農(nóng)業(yè)無人機(jī)農(nóng)藥噴灑服務(wù)合同3篇
- 二零二四年度醫(yī)療器械研發(fā)合作與專利授權(quán)合同
- 二零二五年度農(nóng)業(yè)大棚租賃與農(nóng)業(yè)保險(xiǎn)合作合同范本4篇
- 二零二五年度牛肝菌產(chǎn)品包裝設(shè)計(jì)與印刷合同3篇
- 二零二五年度醫(yī)療設(shè)備配件更換與健康管理合同4篇
- UPVC管道安裝施工方法
- 張家界喀斯特地貌
- 讓學(xué)生看見你的愛
- 12123交管學(xué)法減分練習(xí)題及答案二(帶圖文通用版)
- 銷售禮盒營銷方案
- 南潯至臨安公路(南潯至練市段)公路工程環(huán)境影響報(bào)告
- 初中數(shù)學(xué)校本教材(完整版)
- 重慶市銅梁區(qū)2024屆數(shù)學(xué)八上期末檢測試題含解析
- 中央導(dǎo)管相關(guān)血流感染防控
- 光的偏振和晶體光學(xué)基礎(chǔ)課件
- 中科大光學(xué)講義08光的偏振
評論
0/150
提交評論