WQL語言簡介和WQL測(cè)試工具wbemtest.exe使用方法詳細(xì)介紹
WQL就是WMI中的查詢語言,WQL的全稱是WMI Query Language,簡稱為WQL,翻譯成中文好像可以成為Windows管理規(guī)范查詢語言。熟悉SQL語言的朋友會(huì)感覺它和SQL非常相似。
WQL其實(shí)非常簡單,它有如下特點(diǎn):
1、每個(gè)WQL語句必須以SELECT開始;
2、SELECT后跟你需要查詢的屬性名(我剛才對(duì)應(yīng)SQL將其稱之為字段名了),也可以像SQL一樣,以*表示返回所有屬性值;
3、FROM關(guān)鍵字;
4、你要查詢的類的名字;
5、另外,如果你想精確查詢結(jié)果還可以加上WHERE條件從句。比如某個(gè)類有Enable屬性,你可以在查詢的時(shí)候加上WHERE ENABLE=true。
如以下的都是正確的WQL語句:
Select * From Win32_LogicalDisk where drivetype=3 '‘'‘查詢所有硬盤分區(qū)
SELECT * FROM Win32_share '‘查詢所有共享目錄
SELECT * FROM Win32_NetworkAdapterConfiguration WHERE DHCPEnabled=TRUE
SELECT Description FROM Win32_Account WHERE Name='Administrator'
SELECT Freespace,DeviceID FROM Win32_LogicalDisk
在WinXP和Win2003中有一個(gè)自帶的WQL測(cè)試工具,叫wbemtest.exe,用它就能查看有哪些類和類有哪些 屬性,使用方法如下:
首先,運(yùn)行wbemtest.exe,如下圖:

點(diǎn)“確定”之后會(huì)出現(xiàn)一個(gè)“Windows管理規(guī)范測(cè)試器”的窗口,如下圖:

點(diǎn)擊“連接”會(huì)出現(xiàn)一個(gè)對(duì)話框,我們可以選擇連接本地主機(jī)或者遠(yuǎn)程主機(jī),如下圖:

如果是本機(jī)測(cè)試并且是用管理員身份登錄,可以不用填寫用戶名和密碼,如果是鏈接遠(yuǎn)程主機(jī)則需要填寫遠(yuǎn)程主機(jī)上的用戶名和密碼(建議使用遠(yuǎn)程主機(jī)上的管理員身份登錄),點(diǎn)擊“連接”之后就會(huì)回到主界面。注意,只有登錄之后才能查看和查詢。
點(diǎn)擊“查詢”按鈕,輸入我們要查詢的WQL語句,如"Select * From Win32_LogicalDisk",這是查詢系統(tǒng)邏輯驅(qū)動(dòng)器的WQL語句,如圖:

這是我們多半會(huì)得到一個(gè)號(hào)碼為"0x80041010" ,描述為"無效類別"的錯(cuò)誤,如下圖:

出現(xiàn)這個(gè)錯(cuò)誤是因?yàn)閯傞_始默認(rèn)的名稱空間為"root/default",這時(shí)我們需要更改名稱空間。再點(diǎn)擊“連接”按鈕,將默認(rèn)的"root/default"更改為"root/cimv2",然后再點(diǎn)"連接"按鈕,如下圖:

登錄成功之后我們就可以查看系統(tǒng)有哪些類,并且還可以執(zhí)行WQL查詢了。
點(diǎn)擊"枚舉類別"按鈕,然后在彈出的對(duì)話框中輸入要查找的類名就可以查詢類的屬性了。如下圖(注意:我沒有填寫超類別名稱,并且選中"遞歸"單選按鈕,這樣就是遞歸列舉系統(tǒng)中所有的類):

查詢結(jié)果如下圖:

這些可都是有用的東西哦,如果你細(xì)心,你會(huì)這個(gè)列表里發(fā)現(xiàn)我以前所用到的WQL語句里設(shè)計(jì)到的所有的類,如Win32_LogicalDisk、Win32_share等等。需要注意的是,有些還有括號(hào),這些是方法。
下面是一些查詢的結(jié)果:



我們還可以對(duì)其中某一項(xiàng)數(shù)據(jù)雙擊查看屬性,如下圖:

如果我們不習(xí)慣這種方式查看,我們還可以點(diǎn)擊上面這個(gè)窗口中的"顯示MOF“按鈕,下圖是我點(diǎn)擊"顯示MOF“按鈕的結(jié)果:

從上面的圖里就能看出這個(gè)類有哪些屬性及對(duì)應(yīng)的屬性值了。
今天的內(nèi)容看起來似乎和.net沒有什么聯(lián)系,但是只有了解并且熟悉了WQL才能使我們快速和順利地編寫.net代碼。
WMI 測(cè)試器 (wbemtest.exe) 演練
現(xiàn)在,您對(duì)可用于瀏覽和查看 CIM 的工具已經(jīng)有了一些認(rèn)識(shí),讓我們使用 WMI 測(cè)試器 (wbemtest.exe) 來檢查Win32_Process 類定義并修改清單 2,以便從在您的本地計(jì)算機(jī)上運(yùn)行的進(jìn)程檢索一些屬性。
打開一個(gè)命令提示,鍵入 C:\>wbemtest.exe,按下 Enter 來開始 WMI 測(cè)試器工具。請(qǐng)注意,大部分按鈕在主 WMI 測(cè)試器窗口上是被禁用的,這說明此時(shí)您沒有連接到 WMI。
單擊 Connect? 連接到本地或遠(yuǎn)程計(jì)算機(jī)上的 WMI 服務(wù)。顯示“連接”對(duì)話框,它提供一個(gè)標(biāo)記為Namespace 的文本輸入?yún)^(qū)域,該區(qū)域默認(rèn)值為 root\default。將 Namespace 區(qū)域的值更改為root\cimv2,單擊“連接”對(duì)話框的 Connect 按鈕返回到主 WMI 測(cè)試器窗口。
主窗口中左上角的命名空間標(biāo)識(shí)符應(yīng)該顯示為 root\cimv2。請(qǐng)注意,所有的按鈕現(xiàn)在都已啟用,這說明在當(dāng)前憑據(jù)環(huán)境下,您已經(jīng)成功連接到本地主機(jī)上的 WMI。單擊 Enum Classes? 打開“超類信息”對(duì)話框。
在“超類信息”對(duì)話框中,不要填寫 Enter superclass name 區(qū)域,單擊 Recursive 選項(xiàng),單擊 OK 以枚舉 root\cimv2 名稱空間中定義的所有 CIM 類。
此時(shí),您可能應(yīng)該正在查看一個(gè)列出了數(shù)百個(gè)類定義的“查詢結(jié)果”對(duì)話框。類的數(shù)量主要取決于您正在運(yùn)行的 Windows 的版本。例如,如果使用 Windows 2000,則您應(yīng)該會(huì)看到大約 600 個(gè)類定義。如果運(yùn)行 Windows XP,則您應(yīng)該會(huì)看到大約 900 個(gè)類定義。
請(qǐng)注意,列于“查詢結(jié)果”對(duì)話框頂部的類是以兩個(gè)下劃線為開頭的。這些是系統(tǒng)類。系統(tǒng)類是預(yù)定義的 CIM 類,支持內(nèi)部 WMI 配置與操作,例如提供程序注冊(cè)、命名空間安全性及事件通知等。現(xiàn)在,忽略系統(tǒng)類,向下滾動(dòng)“查詢結(jié)果”對(duì)話框直至看到以 CIM_ 開頭的類。
名稱以 CIM_ 開頭的類是由 DMTF 維護(hù)的核心與公共基類。繼續(xù)向下滾動(dòng)直至到達(dá)以 Win32_ 開頭的類。
名稱以 Win32_ 開頭的類是 Microsoft 擴(kuò)展類,表示 Windows 特定的托管資源。如果這是您第一次檢查root\cimv2 命名空間,您可能希望熟悉 root\cimv2 命名空間中的類的完整集合,尤其是有 Win32_ 前綴的類。
向下滾動(dòng)“查詢結(jié)果”對(duì)話框直至到達(dá) Win32_Process 類,雙擊該類名打開 Win32_Process 對(duì)話框的對(duì)象編輯器。
“對(duì)象編輯器”對(duì)話框顯示被選定類的定義和實(shí)現(xiàn)的詳細(xì)信息(屬性和方法)?;貞浺幌挛覀冎坝懻摰膬?nèi)容 — 類定義是 WMI 可管理資源的藍(lán)圖。
選擇 Hide System Properties 復(fù)選框隱藏系統(tǒng)屬性。剩余的 Win32_Process 屬性表示您可以從在本地或遠(yuǎn)程計(jì)算機(jī)上運(yùn)行的進(jìn)程檢索的信息。
要完成您的 WMI 腳本練習(xí),嘗試去檢索 Name、Handle 和 ProcessID 屬性。使用前面的三個(gè)清單之一作為模板,試著在進(jìn)行到第 7 步之前運(yùn)行腳本。
注 要在本地計(jì)算機(jī)上運(yùn)行腳本,將 strComputer 變量的值設(shè)置為“.”(引號(hào)內(nèi)的一個(gè)單點(diǎn))。
在運(yùn)行新創(chuàng)建的 GetProcesses.vbs 腳本之后,您可以用 WIMI 測(cè)試器驗(yàn)證腳本的結(jié)果。在 Win32_Process 對(duì)話框的對(duì)象編輯器中,單擊 Instances。產(chǎn)生的查詢結(jié)果對(duì)話框列出在計(jì)算機(jī)上運(yùn)行的進(jìn)程的實(shí)例。雙擊一個(gè)指定的進(jìn)程實(shí)例,查看該實(shí)例的詳細(xì)信息。
軟件下載地址:http://m.fzitv.net/softs/193574.html
WMI 測(cè)試器演練的答案
strComputer = "." ' Dot (.) equals local computer in WMI
Set wbemServices = Getobject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_Process")
For Each wbemObject In wbemObjectSet
WScript.Echo "Name: " & wbemObject.Name & vbCrLf & _
" Handle: " & wbemObject.Handle & vbCrLf & _
" Process ID: " & wbemObject.ProcessIDNext
相關(guān)文章
win8下IIS 8.5下設(shè)置404錯(cuò)誤頁
不知不覺中IIS已經(jīng)更新到了8.5版本,不得不感慨科技的日新月異,IIS8.5跟之前低版本的IIS有了很多不一樣的地方,今天我們先來探討下如何設(shè)置404錯(cuò)誤頁面2014-06-06
用IIS建立的.net網(wǎng)站通過IP地址不能訪問解決方法
用iis建立一個(gè).net的網(wǎng)站,在iis中綁定了服務(wù)器公網(wǎng)ip的80端口和127.0.0.1的80端口,結(jié)果用ip地址不能直接訪問2014-05-05
IIS7 設(shè)置讀取、腳本和可執(zhí)行文件的執(zhí)行權(quán)限的步驟
這篇文章主要介紹了IIS7 設(shè)置讀取、腳本和可執(zhí)行文件的執(zhí)行權(quán)限的步驟,需要的朋友可以參考下2017-04-04
IIS服務(wù)器證書創(chuàng)建與配置小結(jié)(圖文)
本文主要介紹了IIS服務(wù)器證書創(chuàng)建與配置小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
IIS服務(wù)網(wǎng)站的幾種配置方式小結(jié)
本文主要介紹了IIS服務(wù)網(wǎng)站的幾種配置方式小結(jié),主要介紹了三種訪問方式,不同的IP地址訪問,不同的端口訪問和綁定不同的域名訪問,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Windows Server 2012顯示或隱藏桌面上的通用圖標(biāo)教程圖解
Windows Server 2012與Windows Server 2008 在顯示或隱藏桌面上的通用圖標(biāo)是不同的。這篇文章通過圖文并茂的形式給大家介紹Windows Server 2012顯示或隱藏桌面上的通用圖標(biāo),感興趣的朋友一起看看吧2018-12-12
防止aspxspy木馬列服務(wù) iis信息 執(zhí)行命令提權(quán)等操作
處于安全考慮,對(duì)服務(wù)器安全進(jìn)行設(shè)置。上傳aspxspy測(cè)試2012-11-11
組策略中的審核策略提示 Windows無法讀取模板信息的解決方法
今天在幫客戶配置2003的時(shí)候,進(jìn)入組策略提示W(wǎng)indows無法讀取模板信息,原來是因?yàn)榘惭b設(shè)置過程中刪除了guest賬號(hào),下面腳本之家小編為大家分享下解決方法吧2014-06-06

