Wmi(Windows Management Instrumentations,即 Windows 管理规范 ) 作为组件集成于 Windows 操作系统,为多种信息的获取和管理提供了一系列标准。通常 WMI 可以实现几种功能,包括提供注册、请求传送、统一的编程 API 、远程管理、安全管理、可发现性和导航性、查询能力、强大的时间发布和订阅功能、事件的侦测和脚本编程能力等等。
CIM是面向对象的模型,使用一组面向对象的属于进行描述。 WMI 是微软扩展 CIM 2.0 而得到的面向 Win32 系统的扩展模型。 WMI 就是使用 CIM 来描述 Windows 环境中的系统对象。 CIM 分为三层:核心模型、公共模型和扩展模型。三层之间的关系为核心模型呗包含在公共模型中,扩展模型包括一部分公共模型。 CIM 分为三个通用类:系统、核心和公共、扩展类。
命名空间是CIM 使用的分区机制, WMI 引入该概念,创建了几种命名空间: root 、 root\Default 、 root\Security 、 root\CIMV2 。命名空间所提供的类对象为访问各种管理对象提供了面向对象编程接口。
WMI体系结构由三个主层组成:托管资源、 WMI 基础结构、使用者。托管资源包括:计算机系统、操作系统子系统、网络组件、性能计数器、磁盘、服务、外围设备、事件日志、文件、文件夹、文件系统、打印机、进程、注册表设置、安全性、共享、 SAM 用户和组、 Active Directory 、 Windows 安装程序、 Windows 驱动程序模式设备驱动程序、以及 SNMP 管理信息基( MIB )数据等。
WQL( WMI Query Language ,即 WMI 查询语言)是用来检索某 WMI 类的实例集合,是标准 SQL 的一个子集加上 WMI 的扩展,只能执行 SELECT 操作,而其他如 UPDATE 、 DELETE 等 DML 语句无效。
WMI可以使用任何支持 COM 自动化特性的脚本语言,如 Perl 、 javascript 、 VBScript 等,大部分开发的 WMI 管理工具程序都是使用脚本实现。
Wmi工具下载地址:
http://www.microsoft.com/en-us/download/search.aspx?q=wmi&p=2&r=10&t=99&s=Relevancy~Descending
下载安装WMITools ,如下图所示,为 WMI Tools 安装后在开始菜单中列出的工具列表。
其中,CIM Studio 工具可以查看、修改 WMI 的类属性和方法; WMI Object Browser 可查看相应主机中某个类对象的值,如查看本机的服务列表。
此外,可以通过脚本获取相应的对象值,下面以获取主机进程列表脚本为例:
strComputer = "." ' 点号代表本机 wmi命名空间 Set wbemServices = Getobject("winmgmts:\\" & strComputer) Set wbemObjectSet = wbemServices.InstancesOf("Win32_Process") For Each wbemObject In wbemObjectSet WScript.Echo "Name: " & wbemObject.Name & vbCrLf & _ " Handle: " & wbemObject.Handle & vbCrLf & _ " Process ID: " & wbemObject.ProcessID Next