WMI入门教程之怎么使用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所示;
 
  图1

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

  

图2

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

图3

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

  图4

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

图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,你怎么用?

(0)

相关推荐

  • WMI入门教程之什么是WMI?

    WMI出现至今已经二十多年了,但很多人对它并不熟悉.知道它很好很强大,但不知道它从哪里来,怎么工作,使用范围是什么?现在我跟大家说说我的理解... WMI有一组API.我们不管使用VBScript.PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API.这些API是在系统安装WMI模块的时候安装的,通过他们我们能够能拿到我们想要的类. WMI有一个存储库.尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或

  • PowerShell入门教程之访问.Net程序集、COM和WMI实例

    PowerShell可以设计的大而全,重新实现一切:也可以像现在一样设计成胶水语言,利用现有的资源.特别是,与.Net.COM和WMI三大豪门的联姻,使得PowerShell必将在Windows世界里大放光彩. 与新锐.Net联姻 在Windows的世界里,.Net代表着现在和将来,是新生力量.与.Net联姻,就意味着榜上了粗腿,迈上了快车道.号称基于.Net Framework,那么使用.Net的基类就易如反掌.基本步骤如下:1.添加类所在程序集:2.创建类的实例:3.调用实例的函数或者属性.

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

    知道了WMI是什么以后,肯定想要知道如何使用WMI干活.它能写"Hello World"吗?WMI没那么无聊,它一上来就会问你"你想要什么?"或者"你想要更改什么?"... WMI工具 Windows本身提供了几个WMI工具供用户使用,包括WMIC.exe.WBEMTest.exe和WMI Administrative Tools等.前两个是系统自带的,最后一个需要自己下载安装.不过说实话,我最喜欢WMI Administrative Tools

  • WMI入门教程之WMI中的类在哪里?

    使用WMI归根到底是对WMI类的访问,如何找到合适的类是其中关键的一步.我一直在为找不到合适的类和命名空间苦恼.你也有这样的问题吗? 类层次结构 WMI的类是以命名空间和继承层次方式组织的,呈树形结构.命名空间的根是root,在它的下面还有十几个命名空间,最常用的是root\cimv2.命名空间的信息存储在静态类__Namespace类中,要查询当前命名空间下的所有命名空间,可以查看__Namespace类的实例.以下是在我的机器上使用PowerShell查询到的命名空间: 复制代码 代码如下:

  • ABP(现代ASP.NET样板开发框架)系列之二、ABP入门教程详解

    ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate ABP 的由来 "DRY--避免重复

  • Python中强大的命令行库click入门教程

    前言 我们的游戏资源处理工具是Python实现的,功能包括csv解析,UI材质处理,动画资源解析.批处理,Androd&iOS自动打包等功能.该项目是由其他部门继承过来的,由于绝大部分代码不符合我们的业务需求,所以进行了大重构.删除了所有业务代码,仅保留了python代码框架.项目中命令行参数解析是自己实现的,极其不优雅,也忍了这么久.打算找时间用click重写.所以最近学习了click,下面本文的内容是click的入门教程,初学者们可以来一起学习学习. 官网镜像地址: http://click

  • 零基础易语言入门教程(六)之逻辑型命令

    逻辑型命令,就是非真即假的. 具体方法和步骤如下所示: 1.如果(): 属于逻辑型,不是真就是假,这种时间我们基本在编写程序时,会有两个选择方向,见下图所示: 2.如上图,如果命令属于逻辑型数据,且有两条输出方向,当我们在如果命令里填写的为真,那么我们的系统将会显示输出真的一个,反之则为假. 3.如果()命令在我们编写程序时属于常用命令,他在运行时我们需要给他一个条件,然后才能输出内容,有了条件我们在运行时给他一个输出方向即可, 以上所述是小编给大家介绍的零基础易语言入门教程(六)之逻辑型命令的

  • 零基础易语言入门教程(五)之逻辑型数据类型

    在上篇文章给大家介绍了零基础易语言入门教程(四)之数据类型,上篇针对数值到文本类型知识,今天给大家介绍下逻辑型数据. 具体方法和步骤如下所示: 1.逻辑型数据非真即假: 首先申请一个局部变量(A)类型为:逻辑型,编写代码为:A=1>2,那么输出的结果应为假,因等于1是赋值与1,然后代码中写道1大于2,所以这是假的,见下图所示: 2.关系运算符: 在上图大家需注意的是,A后面的等于号是赋值符号,而后面的≥,≠,<一些符号则是关系运算符. 关系运算符不是非要设置变量给其赋值才可以使用的,同样他可以

  • 零基础易语言入门教程(四)之数据类型

    我们一起了解下易语言的数据类型,跟我们现实生活是一样的,分为文本型和数值型,即是我们所说的文科生和理科生的区别. 参考文章:详解易语言中的数据类型 方法和步骤如下所示: 1.数值型(到数值命令): 使用该命令可将文本型等一类数据更改为数值型:我们来输入一行代码看看其作用: 2.到文本()命令: 我们先输入一行代码试试,见下图 3.小结: 每一行代码前后的数据类型必须转换为同一种,方可进行相连,相加,"+"在数据为文本型时是连接作用,数值型的跟数学里的符号一样. 以上所述是小编给大家介绍

  • 微信公众平台开发入门教程(图文详解)

    在这篇入门教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯及XML语言基础.如果你还没有,那么请先学习相关知识. 我们将使用微信公众账号方倍工作室(账号:pondbaystudio,二维码在最底部)作为讲解的例子. 这篇入门教程将引导你完成如下任务: 创建百度云平台应用启用微信公众平台开发模式获取订阅.文字.图片.语音.视频消息回复文本.图文及音乐消息程序开发 创建百度云应用 申请账号 登录http://developer.baidu.com/bae ,使用邮箱或者手机

  • CSS网页布局入门教程6:左列固定,右列宽度自适应

    在实际应用中,有时候需要左栏固定宽度,右栏根据浏览器窗口大小自动适应,在CSS中实现这样的布局方式是简单可行的,只需在设置左栏的宽度即可,如上例中左右栏都采用了百分比实现了宽度自适应,而我们只需要将左栏宽度设定为固定值,右栏不设置任何宽度值,并且右栏不浮动,代码如下: 复制代码 代码如下: #left {      background-color: #E8F5FE;      border: 1px solid #A9C9E2;      float: left;      height: 3

随机推荐