一、基本语法架构
(一)什么是WMI?
WMI中最终存在的是各种软硬件资源的抽象定义。利用WMI,就是通过类定义,获得类实例,检索出符合要求的属性,调用其内置的方法,实现我们的目标。
具体来说,就是获得计算机各个具体属性、数据。比如进程、网卡、IP、内存、硬盘等信息
(二)WMI的组成部分:
- 1、CIM库:
- 公共信息模型对象管理器——CIMOM
- 公共信息模型——CIM
- WMI提供程序
- 2、WMI脚本对象库
在具体使用过程中,我们是通过WMI脚本对象库去访问CIM库,管理托管的资源。
(三)获取这些具体属性信息的步骤(编写脚本的步骤):
1、过程概述
(1)连接到Cim库(或直接到具体类)
(2)获取其某个属性
2、过程标准步骤
(1)初始化:创建WMI对象脚本库的指针实例;
(2)连接:调用其实例的方法,连接到CIM库(命名空间),并指明需要访问的资源的逻辑位置;
(3)获得资源:获得托管资源也就是类的实例的集合;
(4)枚举实例,完成工作。
这几个步骤在我们将来编写的代码中可以明确的反映出来。
(四)概念详解:命名空间与对象库
1、命名空间
命名空间是个很复杂的概念,是对类所处逻辑位置的一个约定。这就好比在变量名前加上名字空间前缀。所以可以通俗的说,名字空间就是一个变量的姓氏。
打个比方说:张家也有个孩子叫小强,李家也有个孩子小强。大家站在一起,你大声叫"小强",你说这到底是叫哪一个小强呢?
问题是这样我们还会碰到一个问题,世界上有很多姓张的,也有可能有很多的张小强,这怎么办呢?这时候我们可以这样说"张老三家的小强",张是一个名字空间,张老三又是张下面的二级名字空间
张.老三的家.小强 = 110
张.三丰的家.小强= 119
常用命名空间
WMI 提供程序清单 | DLL | 命名空间 | 说明 |
---|---|---|---|
Active Directory 提供程序 | dsprov.dll | root\directory\ldap | 将 Active Directory 对象映射到 WMI。 |
事件日志提供程序 | ntevt.dll | root\cimv2 | 管理 Windows 事件日志,例如,读取、备份、清除、复制、删除、监视、重命名、压缩、解压缩和更改事件日志设置。 |
性能计数器提供程序 | wbemperf.dll | root\cimv2 | 提供对原始性能数据的访问。 |
注册表提供程序 | stdprov.dll | root\default | 读取、写入、枚举、监视、创建、删除注册表项和值。 |
SNMP 提供程序 | snmpincl.dll | root\snmp | 提供对 SNMP MIB 数据的访问,并从 SNMP 托管设备捕获。 |
WDM 提供程序 | wmiprov.dll | root\wmi | 提供对 WDM 设备驱动程序中信息的访问。 |
Win32 提供程序 | cimwin32.dll | root\cimv2 | 提供关于计算机、磁盘、外围设备、文件、文件夹、文件系统、网络组件、操作系统、打印机、进程、安全性、服务、共享、SAM 用户及组,以及更多资源的信息。 |
Windows 安装程序提供程序 | msiprov.dll |