Win32_BaseService
Win32_BaseService类别描述了被安装在服务控制管理员登录资料库的可执行程序。此类别的实例会识别服务或设备驱动程序。您的服务应该使用Win32_Service为它的基础类别,以取得一个类别(于下一节讨论)。一个设备驱动程序可以用Win32_SystemDriver为它的基础类别,以取得一个类别。
说明
您应该永远不会从Win32_BaseService中取得一个类别,那么做表示告诉系统您已经改变了作业系统的架构。
Win32_BaseService类别支援的属性包括:
- AcceptPause
- PathName
- AcceptStop
- ServiceSpecificExitCode
- DesktopInteract
- ServiceType
- DisplayName
- StartName
- ErrorControl
- State
- ExitCode
- TagId
说明
在CIM Studio中有一些属性拥有一个黄色箭头图示,这个黄色箭头图示指示该属性是从一个基础类别继承而来的。
Win32_Service
Win32_Service类别描述了在Microsoft Win32电脑系统上的一个服务。一个服务应用程序与本书第叁章与第四章所讨论的服务控制管理员介面相符。
在WMI中,服务类别应该是为了管理服务而使用,而不是提供存取服务的工作。例如,它可能会不适当的宣告一个来自Win32_Service的DHCPService类别并在类别中实作了一个取得新的DHCP位址之方法。然而,它也可能在被取得的类别中适当的实作一个方法,以允许您限制可被服务回传的位址范围。
Win32_Service类别支援了以下的属性:
- CheckPoint
- ProcessId
- WaitHint
CIM_ServiceAccessPoint
CIM_ServiceAccessPoint类别描述了您的服务之存取位置,如同在通讯协定服务的环境条件下由应用程序和通讯埠80接收的命令列参数。使用这个类别管理存取位置。如果您需要控制例如主机的存取位置,则要提供此类别的实例。
CIM_Setting
您知道设定资料是分别被操作上的资料所描述。CIM_Setting类别为所有的设定资料提供一个基础类别。在任何您想要为服务加入与设定相关的资料时,应该透过从CIM_Setting类别取回而使它可以存取。
定义一个应用于CIM_ManagedSystemElement的特殊设定时,请注意CIM_ElementSetting在CIM_Setting与CIM_ManagedSystemElement之间的关系。您应该永远从相关的类别中取得一个类别,以建立您的CIM_ManagedSystemElement类别(通常是一个Win32_ServiceCIM_Service或AccessPoint_class)与设定它的CIM_Setting-derived类别之间的特殊关系。您可以在CIM储存机制中储存设定资料(如您在本章前面所见的joke类别范例),但是我不建议您如此做,因为CIM储存机制不打算用于一般目的之储存,您应该在别处储存资讯,例如在登录中,并使用WMI登录提供者取回资讯。
CIM_StatisticalInformation
CIM_StatisticalInformation类别在CIMV2命名空间内的统计资料提供了一个位置。您可以选择此类别下的任何类别,并在的实例中察看它目前的统计资料。例如,看到CIM_StatisticalInformation\Win32_Perf\Win32_Perf RawData类别下的Win32_Perf RawData_PerfDisk_PhysicalDisk类别。
说明
许多类别名称包括了一些底线。严格来说,它并不被允许—这些是Microsoft没符合规则的例子。在每个您的类别名称中最好只包括一个底线;而这个底线应该要使类别名称与取回的类别名称标记区分。
关联类别
我只提及一个重要特色即是关联类别,它将一些类别连接在一起。一个关联类别的范例即是您曾见过的CIM_ElementSetting,它将CIM_ManagedSystemElement连接至描述它们的结构参数设定。
您必须了解更多重要的关联类别以正确地使用WMI。以下几个部份描述了您应该了解的关联类别。
CIM_Dependency
大部份连接了二个CIM_ManagedSystemElement类别的关联类别为二种类型之一—即一个CIM_Dependency关联类别或一个CIM_Component关联类别。CIM_Dependency关联类别描述了二个物件间的函数依存关系,依存关系说明了哪一些元件隶属于另一个元件,例如,Win32_DependentService关联类别(从CIM_ServiceServiceDependency取回,而它是从CIM_Dependency取回的)被用来指示服务间的依存关系。如果服务因为一个它依赖的服务而启动失败,它可能会采取从属的连锁关系,直到您确定了问题的原因为止。
如果您开启了CIM Studio并展开CIM_Dependency下的树状结构,您将会看到超过40个的关联类别,每一个皆展示不同类型的依存关系,以使它可以在WMI模型中描述。他们之中有些是特定的服务以及与他们相关的物件。CIM_Dependency时常会被当成基础类别使用。
CIM_Component
CIM_Component关联类别被用来确认一个元件为另一个元件一部份之事实。从CIM_Component取回的类别描述一个系统元件和许多组成系统之CIM_ManagedSystemElement类别间的关系。CIM_Component通常被当成一个基础类别使用。
CIM_ElementSetting
CIM_ElementSetting与一个提供结构参数之CIM_ManagedSystemElement类别的设定相关。您必须透过CIM_ElementSetting关联类别取回一个类别,以与任何您用适用于CIM_ManagedSystemElementderived类别设定而加至CIMV2命名空间的设定取得关联。
CIM_Statistics
统计资料的关联类别将一个CIM_ManagedSystemElementderived类别连接至许多适用于它的统计资料。您必须经由CIM_Statistics关联类别取回一个类别,为使用者提供一个取得CIM_ManagedSystemElementderived类别物件之统计资料的方法。
CIM_ServiceServiceDependency
此类别从CIM_Dependency关联类别取回。使用它去定义任何存在服务间的依存关系。它实际上不常被用来察看一个在CIMV2命名空间内的CIM_Service ServiceDependency类别,因为服务的依存关系通常被定义为服务本身的属性。
CIM_ServiceAccessBySAP
这个类别也是从CIM_Dependency关联类别取回,而且应该被用来定义服务和存取位置间的关系,以用来存取服务。
Win32 Service-Related Classes
以下几个部份描述了一些您应该了解之与Win32服务相关的类别。包括了与系统相关的类别、与使用者帐户相关的类别以及为服务群组指定执行之依存关系的类别。图8-4显示了一些类别。
