`

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-->
分享到:
评论

相关推荐

    window高级编程之WMI编程应用

    3. **编写应用程序**:对于更复杂的需求,可以通过编程语言如C#、C++等开发专门的应用程序来利用WMI的功能。这种方式可以实现更精细的控制和更复杂的逻辑处理。 ### 总结 WMI是Windows系统管理的重要工具之一,它...

    WQL查询语言及工具

    **WBEMTest**是一款Windows自带的工具,用于测试和调试WMI查询。该工具能够帮助用户查看系统中可用的类以及它们的属性,从而方便进行WQL查询。 **使用步骤:** 1. **启动WBEMTest:** 运行`wbemtest.exe`启动工具...

    WMI代码生成器wmi wmi编程 wmi代码查询 wmi功能

    它可能提供了图形化的用户界面,允许用户选择WMI类、构建查询,然后自动生成对应的代码片段,适用于多种编程语言,如C#、VB.NET等。这使得开发者可以快速生成可靠的WMI代码,无需手动编写复杂的查询和连接代码。 ...

    WMI编程资料

    WMI编程涉及的是通过使用脚本语言、API调用或者.NET Framework来访问和操作WMI接口,从而实现对Windows系统的监控、管理和自动化。 在“WMI编程资料.doc”这个文档中,可能会包含以下几个核心知识点: 1. **WMI...

    wmi相关说明

    5. WMI客户端:客户端应用程序可以通过WQL(WMI查询语言)或脚本语言(如VBScript、PowerShell)来访问WMI服务,查询和操作管理信息。 使用WMI的主要方法有: - WMI查询:使用WQL语言,可以查询特定的系统信息,...

    WmiTools(windows系统工具)

    WQL是WMI专用的查询语言,它允许用户以结构化的语法来查询和操作WMI命名空间中的对象。WmiTools提供了执行WQL查询的功能,这对于自动化管理和故障排查特别有效。 ### 3. 使用WmiTools **界面操作** WmiTools的界面...

    wmi监测器测试代码

    它为开发者提供了丰富的API,允许程序通过标准的脚本语言或编程语言来查询和操作系统状态。 在描述中提到的“WMI监测器测试代码”是一个使用C++编写的程序,用于监控Windows系统的各种资源,如进程、服务以及CPU...

    WMI 超级工具

    二、WMI查询语言(WQL) WQL是WMI专用的SQL-like查询语言,用于检索WMI信息。例如,以下WQL语句用于获取所有运行中的进程: ```wql SELECT * FROM Win32_Process WHERE Name='notepad.exe' ``` 三、使用VB.NET、...

    WMI TOOLS的工具包

    比如,可以使用WMI查询语言(WQL)来查找并删除与恶意篡改相关的注册表项,或者使用WMI工具监控可疑的进程行为。 以下是几个常用的WMI工具及其功能: 1. **WMIC**: Windows命令行工具,可以直接在命令提示符下执行...

    WmiExplorer.rar

    5. **导出和导入WQL查询**: WQL(Windows Management Query Language)是WMI所使用的查询语言,WmiExplorer可以帮助你构建、测试和保存WQL查询,便于重复使用。 6. **无需编程经验**: 这个工具特别适合那些不熟悉...

    易语言利用WMI取主板温度

    易语言是一种专为初学者设计的编程语言,它采用了贴近自然语言的编程语法,使得编程过程更为简单直观。本文将详细介绍如何使用易语言通过Windows Management Instrumentation(WMI)技术来获取主板温度。 WMI是微软...

    wmi工具

    在Windows环境中,WMI工具是不可或缺的诊断和维护工具。它们可以帮助我们进行以下操作: 1. **系统信息查询**:通过WMI工具,我们可以获取到关于计算机硬件(如CPU、内存、硬盘)、操作系统版本、网络配置等详细...

    Windows Management Instrumentation (WMI)的英文开发文档

    1. 文档首页 ...4. WMI 查询语言 (WQL) 概念介绍: 解释 WQL 的基本语法和结构,它类似于 SQL,用于查询 WMI 类的实例。 示例: 提供常见的 WQL 查询示例,例如检索计算机上安装的软件、活动的进程。

    用WMI获取操作系统补丁信息

    3. **执行WQL查询**:定义一个WQL(WMI查询语言)查询语句,如“SELECT * FROM Win32_QuickFixEngineering”,这将返回所有已安装的hotfix信息。 4. **执行查询并获取结果**:使用IWbemServices对象的ExecQuery方法...

    Visual Basic编程访问WMI对象

    本篇文章将详细介绍如何使用Visual Basic (VB) 编程语言来访问WMI对象,并通过具体实例来展示其应用。 #### 二、WMI基础知识 WMI是一种基于COM(Component Object Model)的技术,它为管理Windows系统提供了一个...

    wmi脚本代码生成工具

    **WMI脚本代码生成工具**,也被称为Scriptomatic,是一款强大的工具,专为IT专业人士和编程爱好者设计,用于简化Windows Management Instrumentation(WMI)的脚本编写过程。WMI是微软提供的一种管理和监控操作系统...

    c++ wmi使用demo

    C++ WMI(Windows Management Instrumentation)是一种在Windows操作系统中获取系统信息的强大工具。WMI是微软提供的一个标准接口,允许应用程序访问和管理系统配置、硬件状态、性能数据等各种信息。在这个“c++ wmi...

    WMI查询操作系统.rar

    WMI允许开发者使用脚本语言或者编程语言来查询、修改和控制系统的状态信息。 在IT领域,WMI查询操作系统主要涉及以下几个核心知识点: 1. **WMI架构**:WMI基于Microsoft的Common Information Model (CIM) 和WBEM...

    微软官方的wmi代码集锦

    WMI主要支持以下几种编程语言: 1. **VBScript**: 通过Windows Script Host (WSH) 在命令行或批处理文件中运行。 2. **PowerShell**: 微软的现代命令行工具,内置了对WMI的强大支持。 3. **C++**: 使用WMI SDK直接...

Global site tag (gtag.js) - Google Analytics