设置命名空间安全描述符

在完全管理员帐户下运行的 C++ 应用程序和脚本都可以更改名称空间安全描述符。

命名空间安全描述符

每个 WMI 命名空间都有一个安全描述符,它允许每个命名空间使用独一无二的安全设置来确定谁有权访问命名空间数据和方法。 有关 WMI 访问安全性的详细信息,请参阅访问 WMI 安全对象访问 WMI 命名空间介绍了 WMI 命名空间的默认安全设置和 WMI 中的安全审核。

可通过以下方式为 WMI (CIM) 存储库中的每个 WMI 命名空间设置帐户权限:

与每个命名空间关联的 __SystemSecurity 对象的以下方法允许你读取或更改命名空间的安全性。

GetCallerAccessRights

将 rights 参数设置为位图,每个位对应一个访问权限。

GetSD

获取用户连接到的命名空间的安全描述符。 此方法返回二进制字节数组格式的安全描述符。 如果正在编写脚本,请使用 GetSecurityDescriptor 方法。

SetSD

为用户连接到的命名空间设置安全描述符 (SD)。 此方法需要二进制字节数组格式的安全描述符。 如果正在编写脚本,请使用 SetSecurityDescriptor 方法

GetSecurityDescriptor

获取安全描述符,该描述符控制对与 __SystemSecurity 实例关联的 WMI 命名空间的访问。 安全描述符作为 __SecurityDescriptor 的实例返回。

SetSecurityDescriptor

编写一个控制对打印机的访问的安全描述符的更新版本。 安全描述符由 __SecurityDescriptor 的实例表示。

Get9XUserList

获取运行 Windows 过时版本的计算机上单个用户列表的远程访问权限,其中通过 Windows 安全描述符进行的访问控制不可用。

Set9XUserList

设置运行 Windows 过时版本的计算机上单个用户列表的远程访问权限,其中通过 Windows 安全描述符进行的访问控制不可用。

如果正在编写脚本,请使用 GetSecurityDescriptorSetSecurityDescriptor。 可以使用 Win32_SecurityDescriptorHelper 类的方法更改安全描述符。

如果使用 C++ 进行编程,可使用安全描述符定义语言 (SDDL) 以及转换方法 ConvertSecurityDescriptorToStringSecurityDescriptorConvertStringSecurityDescriptorToSecurityDescriptor 来操作二进制安全描述符。

请注意,从 Windows Vista 开始,用户帐户控制 (UAC) 会影响对 WMI 数据的访问以及可使用 WMI 控件配置的内容。 有关详细信息,请参阅用户帐户控制和 WMI

保护 WMI 命名空间

WMI 安全常量

访问 WMI 命名空间

WMI 安全描述符对象