`

net中的WMI编程(二):WMI中的WQL语言和WQL的测试工具

    博客分类:
  • .NET
 
阅读更多

今天临晨本人写了一篇有关.net中WMI编程的入门文章,名字是《 .net中的WMI编程(一):WMI介绍及简单应用》,如果你对WMI还不太熟悉,请先阅读那一篇,以便有个大概的印象,网址是:http://blog.csdn.net/zhoufoxcn/archive/2008/01/14/2042697.aspx

昨天给大家展示的例子都比较简单(我个人觉得),不过还是有不少朋友私底下问我为什么有些语句需要那么写,还有人问我怎么知道那样写,以及怎么知道查询结果中会有那些字段名(既然叫WQL,我就称之为字段了)。所以我觉得有必要介绍一下WMI中的查询语言了。

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代码。

说明:下一步我将展示如何在.net中调用WMI中的方法,不过时间计划目前还不确定,手头有些事情要处理。

<!--192.168.1.237-->
分享到:
评论

相关推荐

    WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍

    WQL就是WMI中的查询语言,WQL的全称是WMI Query Language,简称为WQL,翻译成中文好像可以成为Windows管理规范查询语言。熟悉SQL语言的朋友会感觉它和SQL非常相似。 WQL其实非常简单,它有如下特点: 1、每个WQL语句...

    WMI查看工具

    WMI查看工具,很好用的,我一直在使用的工具。

    WMITools.zip

    WMITools.exe

    WmiTools(windows系统工具)

    Wmi Tools不仅是一个查询软件,还可以创建wmi实例,执行wql(类似于sql一样的wmi查询语句)。不过我们用的最多的还是它的查询功能,查询一些我们需要的属性和方法名。

    WQL获取计算机硬件信息

    WQL语句,WMI,获取计算机硬件信息,CPU、BIOS、主板、硬盘、键盘、鼠标、光驱

    WMI Explorer v2.0.0.zip

    WMI Explorer是一款非常好并且很实用的网络检测软件,简单小巧。WMI资源浏览器可以查看WMI信息,WMI软件开发的好助手WMI是Windows管理规范的英文缩写。...执行任何WQL查询和视图的结果集。 WMI Explorer截图

    微软WMI代码生成器

    利用WMI代码生成器可以执行查询或者执行一个方法等,还可以查看当前或者远程电脑上的命名空间以及其下的类,并且还可以生成相关的代码(不然就不叫WMI代码生成器了),支持生成的代码类型包括VBS、C#及VB.NET,默认...

    QT案例,wql查询小工具,非源码

    Qt案例小程序,通过查询msdn网站数据,使用gumbo-parse解析返回的html中的内容,获取win_32类的相关描述和代码、要求。...用于在Pe系统或者没有Windows PowerShell工具的环境下wmi通过wql查询Win32_类的数据

    wmi技术指南 pdf

    WIM技术指南. 详细的WIM介绍,如WQL.

    wmi:WMI for Go

    WMI 软件包wmi提供了Windows WMI的WQL接口。 注意:它与本地计算机上的WMI接口,因此仅在Windows上运行。

    Python利用WMI实现ping命令的例子

    WMI是Windows系统的一大利器,Python的win32api库提供了对WMI的支持,安装win32api即可使用 WMI。 本例通过WMI的WQL实现ping命令。 import wmi c = wmi.WMI() wql = SELECT StatusCode FROM Win32_PingStatus WHERE...

    MiTeC System Information Component Suite 11.3.0 For D7 破解

    + WMI Explorer: WMI object explorer with WQL query tool + ROM BIOS Explorer: tool for BIOS/SMBIOS/DMI browsing and disassembling + GetSys: console application providing system information + ...

    C#并口开发

    C#并口实例,使用Inpout32库开发,测试过是可行的。同时包含使用WMI获取系统所有并口地址的实现

Global site tag (gtag.js) - Google Analytics