更改安全对象的访问安全性

打印机、服务、注册表项、DCOM 应用程序和 WMI 命名空间都是安全对象。 对安全对象的访问受安全描述符保护,后者指定具有访问权限的用户。 从 Windows Vista 开始,许多安全对象都有用于获取或设置安全描述符的方法。 使用适当的权限,可以读取或更改安全对象上的安全描述符。 使用这些方法,可以控制哪些用户帐户或组有权访问打印机、服务、WMI 命名空间或其他对象。 有关安全描述符及其在 WMI 中的用法的详细信息,请参阅访问 WMI 安全对象

本主题包括以下部分:

对象和安全描述符方法

以下列表包含安全对象必须使你能够读取或更改安全描述符的方法:

注意

如果在对 SetSecurityDescriptor 方法的调用中未指定新的安全访问控制列表 (SACL),则目标安全对象上的安全描述符 SACL 将设置为 NULL,这样就不会保留以前的 SACL 设置。

 

在安全描述符格式之间转换

安全描述符是复杂的二进制字节数组,通常必须使用 C++ 创建和更改。 使用 Get 方法之一获取安全描述符后,Win32_SecurityDescriptorHelper 类将提供将安全描述符转换为安全描述符定义语言 (SDDL)Win32_SecurityDescriptor 实例的方法

可以在 Win32_SecurityDescriptor 实例或 SDDL 中更轻松地操作访问控制列表 (ACL)。 有关 WMI 中安全描述符的结构和使用的详细信息,请参阅 WMI 安全描述符对象

在 C++ 或 C# 中,使用转换函数将二进制安全描述符转换为安全描述符定义语言 (SDDL)。 若要修改 C++ 应用程序中的安全描述符值,请使用 ConvertSecurityDescriptorToStringSecurityDescriptorConvertStringSecurityDescriptorToSecurityDescriptor

安全问题

建议非常谨慎地更改安全描述符,以免损害对象的安全性。 请注意,随机访问控制列表 (DACL) 中访问控制条目 (ACE) 的顺序可能会影响访问安全性。 有关详细信息,请参阅 DACL 中 ACE 的顺序

WMI 安全描述符对象

安全描述符帮助程序类

安全性最佳做法

维护 WMI 安全性

访问控制

访问 WMI 命名空间