windows 管理规范 WMI
** WMI ** ** 概述 ** ** **
WMI 作为 Windows 2000 操作系统的一部分提供了可伸缩的 , 可扩展的管理架构 . 公共信息模型( CIM )是由分布式管理任务标准协会( DMTF )设计的一种可扩展的、面向对象的架构,用于管理系统、网络、应用程序、数据库和设备。 Windows 管理规范也称作 CIM for Windows ,提供了统一的访问管理信息的方式。利用 WMI ,可以监视、跟踪和控制有关软件应用程序、硬件组件和网络的系统事件,将来自不同来源的数据用通用、标准且逻辑上有组织的方式映像出去,以便在管理数据之间建立相互关系和关联,而不必考虑这些数据的类型、内容或来源 .
使用 WMI 还会带来以下便利之处 :
统一的编程 API: 所有的管理对象定义在基于 CIM 的对象模型的公共的对象框架下 . 脚本或者应用程序可以使用一种 API(WMI) 访问完全不同的来源的信息 , 这些信息的来源可能是 Win32 API,Windows NT 事务日志 , 注册表 , 计数器 , 设备驱动 ,SNMP 和活动目录等等 .
远程管理 : 对于应用程序和脚本来说 , 定义在 WMI 中的管理对象在本地和远程都是可用的 , 尤其是管理远程的对象并不需要特别的工作 .
可发现和导航 : 应用程序和脚本通过枚举可用的类来发现系统的那些信息是可用的 . 您也可以检测相关联的对象之间的关系并且详细的研究其中的一个是怎么影响其他的对象的 ;
查询 :WMI 管理数据就像关系数据库一样的 , 您可以使用 SQL 查询语句那样过滤和选取您感兴趣的数据 ;
强大的事件发布和订阅 : 您可以对系统中的管理对象的任何变化而请求事件 , 或者那些不被内部事件所支持的外部事件 . 事件的订阅者可以对特定的事件请求通知 , 这样胜于接受在原始的开发过程中预定义的一系列事件 . 这种结构使得任何用户定义的动作在给定的事件中开始 .
** WMI ** ** 技术组成 ** ** **
WMI 由以下几部分组成 :
管理架构
这部分包括 CIM 对象管理器和 CIM 对象储存库 , 主要用于储存模式定义和提供者绑定信息 . 特别的 , 数据是动态的从提供者命令获取的 .
WMI 提供者
WMI 提供者使用系统提供的任何管理接口提取系统的管理信息 , 它作为操作系统、服务、应用程序、或者设备驱动程序等与 CIMOM 之间的中间代理程序。通过各种 COM 接口 , 提供程序可向 WMI 提供数据,处理来自系统管理应用程序的请求,并生成事件通知。提供程序还将管理信息和接口映射到 CIM 储存库中定义和存储的对象类。
WMI 使用者
使用者组件和应用程序通过 CIMOM 监视 WMI 事件 , 允许您在事件收到的时候执行动作 . “使用者”是系统管理应用程序(如 Microsoft Systems Management Server (SMS) )或第三方应用程序或脚本。使用者只需要知道它们打算获取其信息的对象的类。信息的来源以及实际获取信息的方式无关紧要,它们被隐藏起来。使用者可以获取有关计算机、操作系统、应用程序和设备的信息,以及获取可通过其他管理协议得到的信息。
公共信息模型 (Common Information Model, CIM) 储存库
“ CIM 储存库”是一个对象数据库,用于存储定义的对象,如用于访问和操作系统管理信息的静态类定义和实例。
公共信息模型对象管理器 (Common Information Model object manager, CIMOM)
CIM 储存库由 CIMOM 管理,它形同对象请求的代理程序。 CIMOM 跟踪可用的类并决定由哪一个提供程序负责提
供这些类的实例。 CIMOM 和 CIM 储存库由称为 WinMgmt 的系统服务表示,可通过一组 COM 接口访问。
** WMI ** ** 架构 ** ** **
图三描述了完整的 Windows 管理规范 WMI 的架构 , 其中还包括了 WMI 的使用者和提供者的例子 . 图 3 的顶部是一些管理应用程序 (WMI 的使用者 ) 的例子 , 除了图上的使用者之外可能还包括基于浏览器的 web 程序 ,Microsoft 管理控制台或定制的 Win32 程序 .
WMI 架构的核心由 CIM 对象管理器和 CIM 储存库以及 Win32 环境的 WMI 提供者组成 .CIM 对象管理器处理数据提供
者个数据的使用者之间的信息通讯 , 就如 SMS 管理控制台或者报表程序调用 WMI 脚本 API.CIM 对象存储库拥有 CIM 的模式 , 当对象管理器为应用程序对 CIM 对象的请求服务时将使用到这些模式 .
定制的 Win32 程序通过访问 COM 接口与 CIM 对象管理器交互来完成管理的请求 , 而其他的应用程序将通过访问方法 ,
诸如 ODBC,ADSI 接口或者 Windows 设备管理规范脚本 API( 也叫做 WBEM 脚本 ) 来处理这些请求 .
图形的下面部分描述了管理对象和与其关联的提供者 , 如 windows 注册表和与其关联的注册信息提供者 . 对于本地的 CIM 对象管理器与远程的通讯使用 DCOM( 分布式组件 ).
利用 WMI 提供的大量规范,可以为各种各样的管理应用程序提供几乎所有的管理任务,这些应用程序包括 Microsoft Exchange 、 Microsoft SQL Server 和 Microsoft Internet Information 等。
说道这里,其实您应该明白 WMI只是一个规范,而且是针对Microsoft的Windows平台上的管理规范,所以也被称为CIM for Windows。WMI一个很大的特点是对于不同的管理对象-信息源,不管它来自何处,是什么类型,开发人员都可以同样的通过一个公共的结构来访问这些信息。这些信息源的类型可能是CPU这样的硬件,或者是操作系统或者数据库管理系统,抑或是自己开发的应用程序产品。