WQL就是WMI中的查询语言,WQL的全称是WMI Query Language,简称为WQL,翻译成中文好像可以成为Windows管理规范查询语言。熟悉SQL语言的朋友会感觉它和SQL非常相似。
WQL其实非常简单,它有如下特点:
1、每个WQL语句必须以SELECT开始;
2、SELECT后跟你需要查询的属性名(我刚才对应SQL将其称之为字段名了),也可以像SQL一样,以*表示返回所有属性值;
3、FROM关键字;
4、你要查询的类的名字;
5、另外,如果你想精确查询结果还可以加上WHERE条件从句。比如某个类有Enable属性,你可以在查询的时候加上WHERE ENABLE=true。
如以下的都是正确的WQL语句:
复制代码 代码如下:
Select * From Win32_LogicalDisk where drivetype=3 '‘'‘查询所有硬盘分区
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中有一个自带的WQL测试工具,叫wbemtest.exe,用它就能查看有哪些类和类有哪些 属性,使用方法如下:
首先,运行wbemtest.exe,如下图:
点“确定”之后会出现一个“Windows管理规范测试器”的窗口,如下图:
点击“连接”会出现一个对话框,我们可以选择连接本地主机或者远程主机,如下图:
如果是本机测试并且是用管理员身份登录,可以不用填写用户名和密码,如果是链接远程主机则需要填写远程主机上的用户名和密码(建议使用远程主机上的管理员身份登录),点击“连接”之后就会回到主界面。注意,只有登录之后才能查看和查询。
点击“查询”按钮,输入我们要查询的WQL语句,如"Select * From Win32_LogicalDisk",这是查询系统逻辑驱动器的WQL语句,如图:
这是我们多半会得到一个号码为"0x80041010" ,描述为"无效类别"的错误,如下图:
出现这个错误是因为刚开始默认的名称空间为"root/default",这时我们需要更改名称空间。再点击“连接”按钮,将默认的"root/default"更改为"root/cimv2",然后再点"连接"按钮,如下图:
登录成功之后我们就可以查看系统有哪些类,并且还可以执行WQL查询了。
点击"枚举类别"按钮,然后在弹出的对话框中输入要查找的类名就可以查询类的属性了。如下图(注意:我没有填写超类别名称,并且选中"递归"单选按钮,这样就是递归列举系统中所有的类):
查询结果如下图:
这些可都是有用的东西哦,如果你细心,你会这个列表里发现我以前所用到的WQL语句里设计到的所有的类,如Win32_LogicalDisk、Win32_share等等。需要注意的是,有些还有括号,这些是方法。
下面是一些查询的结果:
我们还可以对其中某一项数据双击查看属性,如下图:
如果我们不习惯这种方式查看,我们还可以点击上面这个窗口中的"显示MOF“按钮,下图是我点击"显示MOF“按钮的结果:
从上面的图里就能看出这个类有哪些属性及对应的属性值了。
今天的内容看起来似乎和.net没有什么联系,但是只有了解并且熟悉了WQL才能使我们快速和顺利地编写.net代码。
WMI 测试器 (wbemtest.exe) 演练
现在,您对可用于浏览和查看 CIM 的工具已经有了一些认识,让我们使用 WMI 测试器 (wbemtest.exe) 来检查Win32_Process 类定义并修改清单 2,以便从在您的本地计算机上运行的进程检索一些属性。
打开一个命令提示,键入 C:\>wbemtest.exe,按下 Enter 来开始 WMI 测试器工具。请注意,大部分按钮在主 WMI 测试器窗口上是被禁用的,这说明此时您没有连接到 WMI。
单击 Connect"text/css"> 软件下载地址:https://www.jb51.net/softs/193574.html
WMI 测试器演练的答案
复制代码 代码如下:
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
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 老头杯第二届规则是什么 英雄联盟老头杯第二届规则介绍
- 王崴-爵士听堂.蓝色波萨(HQCD)[WAV+CUE]
- 群星《欧美动听情歌·柔情第5季》2CD【DTS-WAV分轨】
- [极品珍藏]德意志进行曲集卡拉扬SACD[WAV+CUE]
- 前暴雪制作人呼吁反击DEI 玩家:夺回文化!
- 腾讯证实子公司Sharkmob大规模裁员:整个市场很低迷
- 荣耀加冕 问鼎冠军 中国代表队获第四届东亚电竞锦标赛团体总冠军
- 污甩乐队.2024-Let.the.dirt.left【摩登天空】【FLAC分轨】
- 杜德伟.1994-ALL.FOR.YOU(英)【滚石】【WAV+CUE】
- 群星.2013-百代好声音ADMSCD1【EMI百代】【WAV+CUE】
- 群星《私人音乐精选示范碟》PRIVATEMUSIC 发烧唱片名碟[WAV+CUE][1.1G]
- 山口百惠《あなたへの子守唄》日本索尼钢刻字首版[WAV分轨][1.1G]
- 群星《宝丽金20周年特别发烧版》1:1母盘直刻限量编号[低速原抓WAV+CUE][1G]
- 凤飞飞.1984-仲夏(夏艳)[WAV]
- 常安《民歌红·江南燕》DTS-ES6.1[WAV]