设置命名空间安全描述符
在完全管理员帐户下运行的 C++ 应用程序和脚本都可以更改名称空间安全描述符。
命名空间安全描述符
每个 WMI 命名空间都有一个安全描述符,它允许每个命名空间使用独一无二的安全设置来确定谁有权访问命名空间数据和方法。 有关 WMI 访问安全性的详细信息,请参阅访问 WMI 安全对象。 访问 WMI 命名空间介绍了 WMI 命名空间的默认安全设置和 WMI 中的安全审核。
可通过以下方式为 WMI (CIM) 存储库中的每个 WMI 命名空间设置帐户权限:
- 在 MOF 文件中创建命名空间时。 有关详细信息,请参阅在创建命名空间时设置命名空间安全性。
- 手动(使用 WMI 控件)。 有关详细信息,请参阅使用 WMI 控件设置命名空间安全性。
- 以编程方式调用 __SystemSecurity 类的方法。
与每个命名空间关联的 __SystemSecurity 对象的以下方法允许你读取或更改命名空间的安全性。
-
将 rights 参数设置为位图,每个位对应一个访问权限。
-
获取用户连接到的命名空间的安全描述符。 此方法返回二进制字节数组格式的安全描述符。 如果正在编写脚本,请使用 GetSecurityDescriptor 方法。
-
为用户连接到的命名空间设置安全描述符 (SD)。 此方法需要二进制字节数组格式的安全描述符。 如果正在编写脚本,请使用 SetSecurityDescriptor 方法。
-
获取安全描述符,该描述符控制对与 __SystemSecurity 实例关联的 WMI 命名空间的访问。 安全描述符作为 __SecurityDescriptor 的实例返回。
-
编写一个控制对打印机的访问的安全描述符的更新版本。 安全描述符由 __SecurityDescriptor 的实例表示。
-
获取运行 Windows 过时版本的计算机上单个用户列表的远程访问权限,其中通过 Windows 安全描述符进行的访问控制不可用。
-
设置运行 Windows 过时版本的计算机上单个用户列表的远程访问权限,其中通过 Windows 安全描述符进行的访问控制不可用。
如果正在编写脚本,请使用 GetSecurityDescriptor 和 SetSecurityDescriptor。 可以使用 Win32_SecurityDescriptorHelper 类的方法更改安全描述符。
如果使用 C++ 进行编程,可使用安全描述符定义语言 (SDDL) 以及转换方法 ConvertSecurityDescriptorToStringSecurityDescriptor 和 ConvertStringSecurityDescriptorToSecurityDescriptor 来操作二进制安全描述符。
请注意,从 Windows Vista 开始,用户帐户控制 (UAC) 会影响对 WMI 数据的访问以及可使用 WMI 控件配置的内容。 有关详细信息,请参阅用户帐户控制和 WMI。
相关主题