本文提供了针对域控制器运行 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
- 使用“以管理员身份运行”选项打开命令提示符窗口。
- 在命令提示符窗口中运行 LDAP 查询。
方法 2
指定以下安全设置的“无提示”值:
用户帐户控制: 管理员批准模式中管理员的提升权限提示行为
有关如何指定此安全设置的值的详细信息,请访问以下 Microsoft TechNet 网站: https://technet.microsoft.com/library/cc772207(WS.10).aspx
方法 3
- 在域中创建新组。
- 将域管理员组添加到此新组。
- 向此新组授予域分区的“读取”权限。 要实现这一点,请执行下列操作:
- 单击“开始”,单击“运行”,键入 adsiedit.msc,然后单击“确定”。
- 在 ADSI 编辑窗口中,右键单击 DC=<Name,DC>=com,然后单击“属性”。
- 在 “属性 ”窗口中,单击“ 安全 ”选项卡。
- 在“安全”选项卡上,单击“添加”。
- 在 “输入要选择的对象名称”下,键入新组的名称,然后单击“ 确定”。
- 请确保在“组”或“用户名”下选择该组,单击以选择“允许读取”权限,然后单击“确定”。
- 关闭 ADSI 编辑窗口。
- 再次运行 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 查询时,使用筛选的访问令牌而不是完全访问令牌。 即使向用户对象授予了管理员组的完全控制权限,你仍然没有完全控制权限。 因此,你仅获取部分属性列表。