通用信息模型
通用信息模型(CIM)是一种可扩展的面向对象的数据模型,其中包含有关企业不同部分的信息。 CIM 是由分布式管理工作队(DMTF)维护的跨平台标准。 通过 WMI,开发人员可以使用 CIM 创建表示硬盘驱动器、应用程序、网络路由器甚至用户定义的技术的类,例如网络空调。 通过查看和更改 CIM 类,经理可以控制企业的不同方面。 例如,管理器可以查询表示桌面工作站的 CIM 类实例。 然后,管理器可以运行脚本来修改 CIM 工作站实例。 WMI 会将任何更改转换为工作站 CIM 类实例,转换为对实际工作站的更改。
CIM 是一种独立于语言的编程模型,它使用面向对象的技术来描述企业。 使用三个级别的父/子继承,CIM 可以描述企业的一般和特定方面。 CIM 还使用一种称为“关联”的技术将企业模型的不同部分链接在一起,并使用架构来区分不同的管理环境。
CIM 旨在呈现管理环境中的逻辑对象和物理对象的一致视图。 CIM 表示使用名为“类”的对象导向构造的托管对象。与C++或 COM 类一样,CIM 类可以包含用于描述数据和描述行为的方法的属性。 与一组 COM 类一样,CIM 不绑定到任何平台。 但是,WMI 包含描述 windows作系统平台Microsoft CIM 的扩展。
CIM 定义了三个级别的类:
核心
核心类表示应用于所有管理领域的托管对象。 这些类提供用于分析和描述托管系统的基本词汇。 __Parameters 和 __SystemSecurity 类是核心类的示例。
常见
公共类表示应用于特定管理区域的托管对象。 但是,常见类独立于特定的实现或技术。 公共类是核心类的扩展。 CIM_UnitaryComputerSystem 类是公共类的示例。
扩展
扩展类表示特定于技术添加到公共类的托管对象。 扩展类通常适用于特定平台,例如 UNIX 或 Microsoft Win32 环境。 Win32_ComputerSystem 类是扩展类的示例。
开发人员可以从另一个类派生类。 派生类表示父类的特殊情况,并继承父类的所有属性和方法。 例如,Win32_ComputerSystem 继承自 CIM_UnitaryComputerSystem。 可以使用系统属性 __Derivation、__Dynasty和 __SuperClass来确定继承关系。 __Derivation 系统属性是一个字符串数组,列出整个继承链,包括根类,该类也包含在 __Dynasty中。 __SuperClass 系统属性显示当前类的直接父级。
WMI 还支持关联。 关联是两个或多个不同 WMI 类之间的关系。 例如,正在运行的工作站通常具有处理器。 WMI 关联类 Win32_ComputerSystemProcessor 将工作站类 Win32_ComputerSystem 与处理器类 Win32_Processor相关联。 但是,关联类不必将两个依赖类绑定在一起。 事实上,关联类的主要用途是显示不一定相互依赖的类之间的关系。 有关详细信息,请参阅 声明关联类。
最后,WMI 支持架构的概念。 在 WMI 的上下文中,架构是描述特定管理环境的一组类。 Microsoft Windows 软件开发工具包(SDK)使用两种架构:CIM 架构和 Win32 架构。 CIM 架构类名称以 CIM_开头,Win32 架构类名以 Win32_开头。 CIM 架构包含核心类和通用类的定义,而 Win32 架构包含 Win32 环境通用的扩展类的定义。 但是,第三方供应商可以创建自己的架构来描述特定于供应商的要求。 由于架构设计为无限扩展,因此开发人员始终可以添加新类来描述现有环境中的新托管对象。 但是,为简单起见,大多数供应商选择创建从 CIM 或 Win32 架构继承属性的架构。