Windows Management Instrumentation (WMI)

Windows 2000及以上版本的操作系统中的MMC,想必大家都用过吧。通过一个统一的规范WMI,以类似服务模块的方式对计算机的资源进行配置、管理。我想这也是WMI的最常见的表现形式了。通过WMI,我们可以对系统资源(包括该机的各种软、硬件资源,比如应用程序、驱动器、打印机之类的)进行远程管理,以各种方式接收系统事件通知。当然我们也可以编写符合WMI规范的应用程序。目前的认识仅此而已,呵呵。

MSDN中关于WMI的链接:Windows Management Instrumentation Start Page
我最近翻译的一篇WMI应用的示例:Windows Management Instrumentation (WMI) Implementation,是用VC#.NET 2003之前的版本写的。

Windows管理规范WMI的四层结构(由低到高)

  • 托管系统(管理系统)是数据来源,通常是操作系统、服务、应用程序、设备驱动、网络、打印机等。
  • 提供程序作为托管系统与上层的公共信息模型对象管理器CIMOM间的中间层,为上层提取下层的相关信息、触发事件,为下层生成事件通知,并将管理信息和接口映射到CIM库的类上。
  • 公共信息模型对象管理器CIMOM是公共信息模型CIM储存库的管理接口。CIM储存库是一个面向对象的数据库,这些对象间可以建立关联,开发人员也可以在现有环境中添加新的类来表示新的托管对象。两者统一由WinMGMT表示,通过一组COM接口进行访问。而这个CIMOM又相当于上层使用者的代理。
  • 使用者就是系统管理应用程序(如 Microsoft Systems Management Server)或者第三方的应用程序或者脚本,它就是最终要向用户显示托管系统相关信息的程序。

如图

 


在 .NET Framework 中,System.Management 命名空间提供了用于遍历 WMI 架构的公共类。当然还需要在计算机上安装 WMI 才能使用该命名空间中的管理功能(Windows Me/2000/XP已经安装了WMI,否则需要下载 WMI进行安装)。System.Management.Instrumentation 命名空间则允许开发人员自定义托管类与 WMI 类之间的映射,因此可以自由地使用对其应用程序而言最合适的结构来定义类。托管类可以映射到符合 WMI 架构标准的 WMI 类。这使得开发人员在使用托管类时效率更高,而且使管理工具能够正确地解释应用程序提供的规范数据。

 

System.Management 命名空间常用的支持 WMI 操作的对象,详见本地MSDN中的.NET Framework 类库 -> System.Management 命名空间

  • ManagementObject 或 ManagementClass:分别对应单个管理对象或类。
  • ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。
  • ManagementEventWatcher:用于预订来自 WMI 的事件通知。
  • ManagementQuery:用作所有查询类的基础。
  • ManagementPath:提供一个包装,用于分析和生成 WMI 对象的路径。
  • ManagementObjectSearcher:基于指定的查询检索管理对象的集合。
  • ManagementScope:表示管理操作的范围。
  • WqlObjectQuery:表示 WQL 格式的 WMI 数据

你可能感兴趣的:(应用服务器,windows,网络应用,XP,配置管理)