欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WMI入门教程之怎么使用WMI?

程序员文章站 2022-03-29 21:42:37
知道了wmi是什么以后,肯定想要知道如何使用wmi干活。它能写“hello world”吗?wmi没那么无聊,它一上来就会问你“你想要什么?”或者“你想要更改什么?”。。。...

知道了wmi是什么以后,肯定想要知道如何使用wmi干活。它能写“hello world”吗?wmi没那么无聊,它一上来就会问你“你想要什么?”或者“你想要更改什么?”。。。

wmi工具

  windows本身提供了几个wmi工具供用户使用,包括wmic.exe、wbemtest.exe和wmi administrative tools等。前两个是系统自带的,最后一个需要自己下载安装。不过说实话,我最喜欢wmi administrative tools。下载wmi administrative tools在。下面以wmi administrative tools为例说明如何使用工具使用wmi。

  下载并安装wmi administrative tools之后,会有4个工具,最常用的是其中的wmi cim studio。在开始菜单里单击它,你会发现它是以网页形式在ie浏览器中打开的。

使用步骤如下:

  1、单击页面上部的电脑图标,会显示一个对话框,单击“connect”按钮,如图1所示;
 WMI入门教程之怎么使用WMI?
  图1

  2、任何时候出现如图2所示的登陆对话框,单击ok按钮即可;

  WMI入门教程之怎么使用WMI?

图2

  3、选择合适的命令空间(这里选择常用的root\cimv2),然后单击ok按钮,如图3所示;

    WMI入门教程之怎么使用WMI?

图3

 4、直接双击右侧类名,或者单击上部的望远镜按钮,在弹出的查找对话窗中输入你要查找的完整类名或者类名的一部分,单击go按钮查找;并在查找结果中选择你要查看的类名,单击ok按钮,如图4所示;

WMI入门教程之怎么使用WMI?

  图4

  5、单击右上部倒数第4个实例按钮,即可得到本机所有安装的软件列表,如图5所示;

   WMI入门教程之怎么使用WMI?

图5

任何wmi类以及实例的查看均可参考以上步骤。

powershell脚本操作wmi

  以前对wmi的操作都是通过vb script进行的,现在更多人倾向于使用powershell来访问wmi类和对象。下面给出使用powershell命令查询本机安装的所有软件列表的示例:

复制代码 代码如下:

ps c:\users\luke> get-wmiobject -class win32_product | select name

name
----
helpdesk
windows installer clean up
xml notepad 2007
microsoft network monitor 3.4
microsoft visual studio 2010 service pack 1
screenrecorder
microsoft office visual web developer 2007
microsoft office visual web developer mui (english) 2007
...

比使用带界面的wmi要简单的多,而且还可以有很多筛选条件。

.net操作wmi

  使用.net中的高级语言来操作wmi也非常的方便。下面示例演示c#操作wmi获得本机安装软件的列表的代码:

复制代码 代码如下:

using system;
using system.management;

namespace wmidemo
{
    class program
    {
        static void main(string[] args)
        {
            managementpath wmipath = new managementpath(@"\\.\root\cimv2:win32_product");
            managementclass wmiclass = new managementclass(wmipath);

            managementobjectcollection instances = wmiclass.getinstances();

            console.writeline("name, vendor");
            foreach (managementobject product in instances)
            {
                console.writeline(string.format("{0}, {1} ", product["name"], product["vendor"]));
            }
        }
    }
}

结语  

  wmi是一个多面手,你个可以从各个测面来使用它。套用一句广告词:关于wmi,你怎么用?