更改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
备注
若要将服务从网络更改为本地系统,请将以下值用于 StartName 和 StartPassword 参数:
StartName = "LocalSystem"
StartPassword = "" // - empty string, not NULL
若要将服务从本地系统更改为网络,请将以下值用于 StartName 和 StartPassword 参数:
StartName = "NT AUTHORITY\NetworkService"
StartPassword = "" // - empty string, not NULL
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
命名空间 |
Root\CIMV2 |
标头 |
|
MOF |
|
DLL |
|