You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不同权限用户执行Get-ADUser返回结果不一致的技术求助

Active Directory用户查询结果数量不一致:普通用户与域管理员权限差异问题

问题描述

在已部署完整基础设施(含用户、计算机、GPO等)的Active Directory环境中,执行以下PowerShell脚本查询用户账户:

(Get-ADUser -LDAPFilter "((memberOf=CN=All,OU=Groups,DC=domain,DC=de))").Count
  • 以仅拥有部分服务器(如文件服务器)管理员权限的普通用户身份运行时,仅返回600个账户
  • 以域管理员身份运行时,返回正确的11000个账户
  • 无论在域控制器还是其他服务器运行,结果一致
  • 已尝试将ResultSetSize设置为$null,无任何变化

问题解答

1. 问题原因

这是Active Directory的权限限制与查询默认行为共同导致的:

  • 默认情况下,普通域用户对AD中部分对象(尤其是位于受保护OU或特殊容器内的用户)没有读取权限,查询时AD会自动过滤掉当前账户无权限访问的对象
  • 你看到的600个是当前账户有权限读取的用户总数,剩余10400个用户所在的容器/OU,当前账户没有读取权限,因此不会被返回
  • ResultSetSize设置为$null是取消结果数量上限,但前提是你有权限读取所有匹配对象,权限不足时该参数不会生效

2. 解决方法

有两种可行方案:

  • 临时方案:使用域管理员权限执行查询,或请求域管理员生成该组的用户列表后提供给你
  • 长期方案:请求域管理员为你的账户配置足够的AD读取权限,具体权限要求见第3点

3. 所需权限(无需域管理员)

要获取完整的用户列表,你的账户需要在以下范围拥有读取权限:

  • 目标组CN=All,OU=Groups,DC=domain,DC=de的成员属性读取权限
  • 该组所有成员用户所在的OU/容器的读取权限(包括用户对象本身的读取权限)
  • 如果用户分布在多个OU,需确保所有包含这些用户的OU都配置了对应的读取权限

具体操作可由域管理员通过AD用户和计算机控制台的「安全」选项卡,为你的账户添加以下权限:

  • 对目标OU/容器:读取所有属性、列出内容
  • 对目标组:读取成员属性

推荐搜索关键词

  • Active Directory user query permission filter
  • AD Get-ADUser returns partial results
  • Read permissions for AD group members
  • Active Directory default user read access restrictions

内容的提问来源于stack exchange,提问作者cBoLsmUiEc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 19:04:57