更改Win32_BaseService类的方法

ChangeWMI 类方法修改派生自 Win32_BaseService 的服务对象。 Win32_LoadOrderGroup 参数表示一组定义执行依赖项的系统服务。 服务必须按照加载顺序组指定的顺序启动,因为服务相互依赖。 这些依赖服务需要先行服务才能正常运行。

本主题使用托管对象格式 (MOF) 语法。 有关使用此方法的详细信息,请参阅 调用方法

语法

uint32 Change(
  [in] string  DisplayName,
  [in] string  PathName,
  [in] uint8   ServiceType,
  [in] uint8   ErrorControl,
  [in] string  StartMode,
  [in] boolean DesktopInteract,
  [in] string  StartName,
  [in] string  StartPassword,
  [in] string  LoadOrderGroup,
  [in] string  LoadOrderGroupDependencies[],
  [in] string  ServiceDependencies[]
);

parameters

DisplayName [in]

服务的显示名称。 此字符串的最大长度为 256 个字符。 名称在服务控制管理器中保留大小写。 DisplayName 比较始终不区分大小写。

约束:接受与 Name 参数相同的值。

示例:“Atdisk”。

PathName [in]

实现服务的可执行文件的完全限定路径。

示例:“\SystemRoot\System32\drivers\afd.sys”。

ServiceType [in]

提供给调用它们的进程的服务类型。

内核驱动程序 (1)

文件系统驱动程序 (2)

适配器 (4)

识别器驱动程序 (8)

自己的进程 (16)

共享进程 (32)

(256)

交互式进程

ErrorControl [in]

如果此服务在启动期间未启动,则错误的严重性。 值指示启动程序在发生故障时采取的操作。 系统记录所有错误。

忽略 (0)

不通知用户。

正常 (1)

正常。 通知用户。

严重 (2)

系统使用最后一个良好的配置重启。

关键 (3)

系统将尝试使用正确的配置重新启动。

StartMode [in]

Windows 基本服务的启动模式。

启动 (“启动”)

操作系统加载程序启动的设备驱动程序。

系统启动 (“系统”)

由操作系统初始化过程启动的设备驱动程序。 此值只对驱动程序服务有效。

自动启动 (“自动”)

服务在系统启动期间由服务控制管理器自动启动。

需求启动 (“手动”)

当进程调用 StartService 方法时由服务控制管理器启动的服务。

disabled (“Disabled”)

无法启动的服务。

DesktopInteract [in]

如果 为 True,则服务可以在桌面上创建窗口或与窗口通信。

StartName [in]

运行服务的帐户名称取决于服务类型。 帐户名称的格式可以是 DomainName\Username 或 .\Username。 运行时,将使用前两种形式之一来记录服务进程。 如果帐户属于内置域,则可以指定 .\Username。 如果指定了空字符串,则服务将作为 LocalSystem 帐户登录。 对于内核或系统级驱动程序, StartName 包含驱动程序对象名称,例如 \FileSystem\Rdr 或 \Driver\Xns,) 系统 (I/O 的输入和输出名称用于加载设备驱动程序。 如果指定 NULL,驱动程序将使用 I/O 系统基于服务名称创建的默认对象名称运行,例如 DWDOM\管理员。

还可以使用用户主体名称 (UPN) 格式指定 StartName,例如 ,Username@DomainName

StartPassword [in]

StartName 参数指定的帐户名的密码。 如果不更改密码,请指定 NULL 。 如果服务没有密码,请指定一个空字符串。

注意

将服务从本地系统更改为网络或从网络更改为本地系统时, StartPassword 必须是空字符串 (“”) ,而不是 NULL

LoadOrderGroup [in]

与其关联的组名称。 加载顺序组包含在系统注册表中,并确定服务加载到操作系统的顺序。 如果指针为 NULL,或指向空字符串,则服务不属于组。 组之间的依赖关系应列在 LoadOrderGroupDependencies 参数中。 首先启动负载排序组列表中的服务,然后启动不属于负载排序组列表中的组中的服务,然后启动不属于组的服务。 系统注册表有一个负载排序组列表,位于 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder

LoadOrderGroupDependencies [in]

此服务启动之前必须启动的负载排序组的列表。 数组以 null 结尾为两倍。 如果指针为 NULL,或者它指向空字符串,则服务没有依赖项。 组名称必须带有 winsvc.h 文件中定义的SC_GROUP_IDENTIFIER (前缀) 字符,以便将其与服务名称区分开来,因为服务和服务组共享相同的命名空间。 对组的依赖意味着,如果在尝试启动组的所有成员后,该组至少有一个成员正在运行,则此服务可以运行。

ServiceDependencies [in]

包含此服务启动前必须启动的服务名称的列表。 数组以 null 结尾为两倍。 如果指针为 NULL,或指向空字符串,则服务没有依赖项。 对服务的依赖意味着,仅当它所依赖的服务正在运行时,此服务才能运行。

返回值

返回以下列表中列出的值之一,或返回其他值以指示错误。

Success

0

请求已接受。

不支持

1

不支持该请求。

拒绝访问

2

用户没有必要的访问特权。

正在运行的依赖服务

3

由于其他正在运行的服务依赖于该服务,不能停止该服务。

无效的服务控制

4

请求的控制代码无效,或者服务无法接受。

服务无法接受控制

5

无法将请求的控制代码发送到服务,因为 Win32_BaseService 对象中的 State 属性等于 0、1 或 2。

服务未处于活动状态

6

该服务尚未启动。

服务请求超时

7

服务不会快速响应启动请求。

未知失败

8

交互式进程。

找不到路径

9

找不到服务可执行文件的目录路径。

服务已在运行

10

服务已在运行。

服务数据库已锁定

11

要添加新服务的数据库已锁定。

已删除服务依赖项

12

此服务所依赖的依赖项将从系统中删除。

服务依赖项失败

13

该服务找不到依赖服务所需的服务。

服务已禁用

14

服务已从系统禁用。

服务登录失败

15

服务没有在该系统上运行所需的正确身份验证。

标记为要删除的服务

16

正在从系统中删除此服务。

服务无线程

17

该服务没有执行线程。

状态循环依赖项

18

启动服务时存在循环依赖关系。

状态重复名称

19

已有一个同名的服务在运行。

状态名称无效

20

服务名称中存在无效字符。

状态无效参数

21

已将无效参数传递给服务。

服务帐户状态无效

22

运行此服务的帐户无效,或者没有运行该服务的权限。

状态服务存在

23

系统的服务数据库中已存在该服务。

服务已暂停

24

该服务目前在系统中已暂停。

其他

25 4294967295

备注

若要将服务从网络更改为本地系统,请将以下值用于 StartNameStartPassword 参数:

StartName = "LocalSystem"
StartPassword = "" // - empty string, not NULL

若要将服务从本地系统更改为网络,请将以下值用于 StartNameStartPassword 参数:

StartName = "NT AUTHORITY\NetworkService"
StartPassword = "" // - empty string, not NULL

要求

要求
最低受支持的客户端
Windows Vista
最低受支持的服务器
Windows Server 2008
命名空间
Root\CIMV2
标头
Mbnapi.h
MOF
CIMWin32.mof
DLL
CIMWin32.dll

另请参阅

操作系统类

Win32_BaseService