8. Windows Management Instrumentation
WMI是Microsoft实作的一个Web-Based Enterprise Management(WBEM)的执行方式,支援Distributed Management Task Force(DMTF)。
WMI提供您管理服务的能力。使用WMI,您可能启动一个服务、停止它以及改变它的许多参数如启动模式、启动名称、路径和服务类型。WMI也结合了事件处理的特色,以允许您提供可以让使用者改变之简单指令码与服务,例如,当服务应该执行却没有执行。WMI的所有管理特征即是它可以远端处理,所以只要给定一个适合的授权,您就可以从网路上的任何地方存取它们。
WMI的架构
WMI是一个电脑系统之可延伸资料模组,图8-1会说明其架构。本节将讨论WMI架构的元件。
Windows Management Service
Windows Management Service(WinMgmt.exe)是WMI的主要元件。WinMgmt担任了WMI消费者(管理应用程序)和提供者之间的代理人。其资料被储存在一个物件导向的结构描述中。这个结构描述由DMTF设计并为所有显示WMI资料的元件提供一个单一的资料描述机制。透过提供支援继承的标准结构描述,WMI资料提供者可以提供标准的资料类别和内容,同时也允许取得其他特定厂商的专用扩充程序以区别特定的产品。本章即在说明如何正确地完成本章的大部份内容。
| 图8-1 WMI的架构 |
CIM物件管理者(CIM Object Manager)
Common Information Model(CIM)物件管理者提供客户端支援多种存取技术的介面,如COM、Scripting、XML、ODBC和ADO。物件管理者支援建立、删除、修改和取回类别和实例的API。类别实例不是由CIM储存机制所提供,此情形称为静态实例,就是由某些种类的提供者(被实作成如COM服务器一样)所提供,此情形称为动态实例。
CIM储存机制(CIM Repository)
CIM储存机制通常只被用来储存WMI支援类别之相关资讯。它基本上是一个符号表,而且不该被用来储存容量大的资料。CIM储存机制不是被存放在允许宣告类别和实例的物件管理者API中,就是直接存放在一个已知的MOF(Managed Object Format)文字中。
WMI提供者
提供者为COM元件,负责在CIM物件管理者与被管理之物件间的完整通讯。提供者可以为内建或特定之应用程序。
提供者可以为各种形式,一般的例子是一个为被管理之物件回传特定资讯的提供者。类别提供者是可以回传类别和实例之定义的一个更复杂之提供者类型。例如,如果您曾尝试从某些可能有新增表格的资料库中回传资讯,它可能会回传在提供者开启资料库时定义的每个类别之表格。这个提供者为进阶的类型,而且服务通常没有实作它。Active Directory是一个服务的罕见范例,它实作了一个动态的类别提供者。Property提供者为一个较简单的类型,它允许动态的新增属性到静态实例。
WMI架构之一般意图是使编写提供者的方法尽可能简单—例如,编写一个实例提供者可能只是产生几行程序代码的问题而已(也就是在WMI SDK中经由提供者产生之工具和范例的说明)。提供者的建构也会利用到继承的观念。如果您在一个类别中新增一个已经拥有提供者的子类别,则您只需为您的新属性或为您所覆写(Overriding)之类别提供属性值即可。
被管理之物件
一个被管理之物件可以是任何的企业元件(Enterprise Component)—例如:一个Win32物件或服务。一个服务允许客户端使用允许自己在一个WMI物件实例中显示管道之匿名管道(Name Pipe)与它连结。
管理应用程序
管理应用程序是一个与本地机器或远端机器通讯之WinMgmt服务应用程序。这些应用程序可以询问WinMgmt服务以决定所有存在一个机器中的逻辑与实体元件。然后这个资讯会被显示并修改,让使用者可以确实地理解并改变机器的设定。另外,当特定的事件发生时,管理应用程序可以命令WinMgmt服务传送一个通知讯息。例如,当机器的硬盘空间少于20% 或一个新的处理程序开始在被管理之机器上执行时,管理应用程序可以接收一个通知讯息。
结构描述(Schema)
WMI隐藏了管理环境之所有可怕及复杂的事物。它采用了Win32 APIs、登录设定、Simple Network Management Protocol(SNMP)Management Information Bases(MIBs)和Traps以及所有其他混杂的管理介面,并将它们包装在一个定义严谨的结构描述中。
结构描述并非是从WMI分离的一个元件,却是WMI的一个重要部份。结构描述是一个描述被管理之物件类别的集合。所有在WMI架构中的元件皆支援结构描述。
结构描述由物件管理者提供,能处理大批的资讯,包括系统、网路、应用程序、设备和实体元件,以及使服务的安装、设定与管理发生作用。结构描述由被安排在拥有属性、关联和方法之类别中的实例所组成。
WMI名称的演化
Common Information Model(CIM)是由Distributed Management Task Force(DMTF)定义的规格,描述以物件导向的方法来管理系统和网路之内容。Microsoft起初将CIM之实作命名为「Web-Based Enterprise Management(WBEM)」,而核心模式部份则命名为「Windows Management Information(WMI)」。DMTF开始在市场销售时,使用「WBEM」来描述一组以CIM之网际网路技术为基础的管理。然后Microsoft将他们所实作的CIM名称改为「WMI」,而核心模式部份的名称则改为「WMI extensions for the Windows Driver Model(WDM)」。由此名称的演化过程,您将可以发现Windows使用了「WMI」、「WBEM」以及「CIM」来表示其函数、介面、类别以及其他元件的管理架构。