设置命名空间安全描述符

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

命名空间安全描述符

每个 WMI 命名空间都有一个 安全描述符,这允许每个命名空间都具有唯一的安全设置,这些设置确定谁有权访问命名空间数据和方法。 有关 WMI 访问安全性的详细信息,请参阅 对 Wmi 安全对象的访问权限。 Wmi命名空间的访问权限介绍 WMI 中 wmi 命名空间和安全审核的默认安全设置。

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

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

GetCallerAccessRights

权限 参数设置为位图,其中每个位对应于访问权限。

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 安全描述符对象