文档介绍:[「WMI」WMI
WBEM—— Web Based Enterprise Management 是一种行业
规范,建立了在企业网络中访问和共享管理信息的标准。
WMI —— Windows
[「WMI」WMI
WBEM—— Web Based Enterprise Management 是一种行业
规范,建立了在企业网络中访问和共享管理信息的标准。
WMI —— Windows Management Instrumentation 是 WBEM
的 Windows 实现。通过 WMI ,我们可以获取关于硬件\软件的
数据,也可以提供关于硬件或软件服务的数据给WMI 。
CIM—— Common Information Model (公共信息模型)。在
WMI 架构中,CIM 对象部件是结构的中心部件, 控制着信息的流
程。 CIM 把管理区域分为物理区域和逻辑区域,他们分别对 应
管理环境的物理和逻辑元素。而逻辑域又可进一步分为系统域、
设备域、应用程序域和网络域。
WMI 整体架构 可以在 MSDN 上找到 WMI 的架构图,虽
然说 MSDN 提供的架构图很详细,但是也很复杂,初学者学习
起来可能会晕晕的,可以做如下的简化:
管理应用程序是任何一种语言编写的程序,如脚本语言、
C++ 、 C#等。
WMI 核心是基于 CIM 的对象管理器,用于处理管理数据和
管理应用程序的静态或动态的资源。
WMI 库是用于静态管理数据的 CIM 中央储备库。类、实例
和属性都在这个库中保存,是对象定义的数据库。
提供程序是一些 COM 对象,他们直接与被管理的部件(如 Win32 系统、注册表、目录服务等)进行交互。他们的信息是动
态生成的。这些信息包含了来自管理 应用程序请求的响应或被管理环境中的变更通知。是 WMI 和操作系统及其组件的中介。
被管理对象是被管理环境中的逻辑和物理对象。 如硬盘,光驱,进程等。
获取数据流程 提供程序生成的数据可以存放在 CIM 储备库(静态)或者对来自 CIM 对象管理器的请求作出相应时, 动态
传递。实际中采取的机制,是根据数据变更的频率来决 定的。 CIM 储备库的更新影响这系统的性能。 因此,如果提供程序监控的被管理部件的状态经常变化, 数据管理就倾向于动态 (如笔记本的 Monitor 切 换);
如果数据是比较静态的 (如 BIOS 版本),到储备库就会终止。这决定了管理应用程序、 CIM 对象管理器、 CIM 储备库和提供程
序之间的信息流程。
数据的获取一般包括如下步骤:
1)管理应用程序发送请求给 CIM 对象管理器。
2) CIM 对象管理器确定请求数据是静态的还是动态的。
3)如果数据是静态的,那么 CIM 对象管理器就直接从储备
库中获取数据;
如果对象是动态的,那么 CI