Win32_Service 类的 GetSecurityDescriptor 方法(CIMWin32 WMI 提供程序)
GetSecurityDescriptor方法返回控制对服务的访问的安全描述符。 描述符作为Win32__SecurityDescriptor的实例返回。
语法
uint32 GetSecurityDescriptor(
[out] Win32_SecurityDescriptor Descriptor
);
参数
-
描述符 [out]
-
与服务关联的安全描述符。
返回值
返回以下列表中列出的值之一,或返回指示错误的其他值。 有关其他错误代码,请参阅WMI 错误常量或WbemErrorEnum。 有关常规HRESULT值,请参阅系统错误代码。
-
成功
-
0
已接受该请求。
-
1
不支持该请求。
-
访问被拒绝
-
2
用户没有所需的访问权限。
-
3
由于其他正在运行的服务依赖于该服务,不能停止该服务。
-
4
请求的控制代码无效或服务无法接受该控制代码。
-
5
由于服务的状态(Win32_BaseService.状态属性)为 0、1 或 2,无法将请求的控制代码发送到该服务。
-
6
该服务尚未启动。
-
7
该服务未及时响应启动请求。
-
未知故障
-
8
启动服务时出现未知故障。
-
缺少权限
-
9
找不到指向服务可执行文件的目录路径。
-
10
服务已在运行。
-
11
要添加新服务的数据库已锁定。
-
12
已从系统中删除此服务依赖的依赖项。
-
13
该服务无法从依赖的服务中找到所需的服务。
-
14
已从系统禁用该服务。
-
15
服务没有在该系统上运行所需的正确身份验证。
-
16
正在从系统删除此服务。
-
17
服务没有执行线程。
-
18
服务启动时具有循环依赖项。
-
19
服务正在以同名运行。
-
20
服务名称具有无效字符。
-
参数无效
-
21
向服务传递的参数无效。
-
22
运行此服务的帐户无效或缺少运行服务的权限。
-
23
系统的服务数据库中已存在该服务。
-
24
该服务目前在系统中已暂停。
-
其他
-
22 4294967295
备注
Win32_SecurityDescriptor 实例表示 SECURITY_DESCRIPTOR_CONTROL 数据类型,并包含自由访问控制列表 (DACL) 以及系统访问控制列表 (SACL)。 有关详细信息,请参阅访问控制列表。
如果在获取安全描述符时未授予或启用 SeSecurityPrivilege,则在返回的安全描述符中仅返回 DACL。 有关详细信息,请参阅特权常量和执行特权操作。
示例
在 VBScript 中检索安全描述符时,请确保“安全性”并作为管理员运行,如以下代码片段所示。 否则,代码可能会引发权限错误。
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Security)}!\\" & strComputer & "\root\cimv2")
同样,在 VB.NET 中,请务必设置“EnablePrivileges = True”,并将应用程序作为管理员运行。
Scope = New ManagementScope([String].Format("\\{0}\root\CIMV2", ComputerName), Nothing)
Scope.Options.EnablePrivileges = True
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
命名空间 |
Root\CIMV2 |
MOF |
|
DLL |
|