针对域控制器运行 LDAP 查询时,获取部分属性列表

本文提供了针对域控制器运行 LDAP 查询时此问题的解决方法,可获取部分属性列表。

原始 KB 数: 976063

现象

针对基于 Windows Server 2008 的域控制器运行轻型目录访问协议 (LDAP) 请求时,你将获取部分属性列表。 但是,如果针对基于 Windows Server 2003 的域控制器运行相同的 LDAP 查询,则可在响应中获取完整的属性列表。

注意

可以从域控制器或运行 Windows Vista 或 Windows Server 2008 的客户端计算机运行此查询。

用于运行 LDAP 查询的用户帐户具有以下属性:

  • 该帐户是内置管理员组的成员。
  • 该帐户不是内置管理员帐户。
  • 该帐户是域管理员组的成员。
  • 用户对象的自由访问控制列表(DACL)包含管理员组的完全控制权限。
  • 你查询的对象的有效权限显示用户具有完全控制权限。

原因

出现此问题的原因是在 Windows Vista 和 Windows Server 2008 中为用户帐户启用了管理员审批模式(AAM)功能。 它也称为“用户帐户控制”(UAC)。 对于本地资源访问,安全系统具有环回代码,因此它在 LDAP 会话的交互式登录会话中使用活动访问令牌,并在 LDAP 查询处理期间进行访问检查。

有关 AAM 功能的详细信息,请访问以下 Microsoft TechNet 网站: https://technet.microsoft.com/library/cc772207(WS.10).aspx

解决方法

要解决此问题,请使用下列方法之一。

方法 1

  1. 使用“以管理员身份运行”选项打开命令提示符窗口。
  2. 在命令提示符窗口中运行 LDAP 查询。

方法 2

指定以下安全设置的“无提示”值:
用户帐户控制: 管理员批准模式中管理员的提升权限提示行为
有关如何指定此安全设置的值的详细信息,请访问以下 Microsoft TechNet 网站: https://technet.microsoft.com/library/cc772207(WS.10).aspx

方法 3

  1. 在域中创建新组。
  2. 将域管理员组添加到此新组。
  3. 向此新组授予域分区的“读取”权限。 要实现这一点,请执行下列操作:
    1. 单击“开始”,单击“运行,键入 adsiedit.msc,然后单击“确定”。
    2. 在 ADSI 编辑窗口中,右键单击 DC=<Name,DC>=com,然后单击“属性”。
    3. “属性 ”窗口中,单击“ 安全 ”选项卡。
    4. 在“安全”选项卡上,单击“添加”
    5. “输入要选择的对象名称”下,键入新组的名称,然后单击“ 确定”。
    6. 请确保在“组”或“用户名”下选择该组,单击以选择“允许读取”权限,然后单击“确定”。
    7. 关闭 ADSI 编辑窗口。
  4. 再次运行 LDAP 查询。

Status

此行为是特意这样设计的。

详细信息

默认情况下,为 Windows Vista 和 Windows Server 2008 中的内置管理员帐户禁用 AAM 功能。 此外,为作为内置管理员组成员的其他帐户启用 AAM 功能。

若要验证这一点,请在命令提示符窗口中运行以下命令。

whoami /all

如果为用户帐户启用了 AAM 功能,输出如下所示。

USER INFORMATION
----------------

User Name SID 
============== ==============================================
MyDomain\MyUser S-1-5-21-2146773085-903363285-719344707-326360

GROUP INFORMATION
-----------------

Group Name Type SID Attributes 
============================================= ================ ================================================= ===============================================================
Everyone Well-known group S-1-1-0 Mandatory group, Enabled by default, Enabled group 
BUILTIN\Administrators Alias S-1-5-32-544 Group used for deny only

内置 Administrators 组具有以下属性:

Group used for deny only

在 whoami /all 中,“域管理员”组显示为已启用的组,其中“强制组,默认已启用,已启用组”,但实际上已禁用允许 ACE。 这是 Windows Server 2008 R2 和 Windows Server 2012 中的已知问题。

根据此输出,用于运行 LDAP 查询的用户帐户已启用 AAM 功能。 运行 LDAP 查询时,使用筛选的访问令牌而不是完全访问令牌。 即使向用户对象授予了管理员组的完全控制权限,你仍然没有完全控制权限。 因此,你仅获取部分属性列表。