如何使用ldapsearch在Active Directory根域中查询子域用户
ldapsearch从Active Directory根域查询子域用户的调整方案
你当前的命令只能查询根域用户,核心原因是默认连接的AD 389端口仅承载当前域的目录数据,且默认搜索范围未显式指定全域递归。你可以按照以下两种方案调整:
方案1:使用全局编录(GC)端口查询(推荐,可一次查询所有子域用户)
全局编录是AD林级的查询服务,默认监听3268(非SSL)/3269(SSL)端口,存储了整个林所有域的对象属性,可直接跨子域查询。
调整后的命令如下:
ldapsearch -x -H ldap://x.x.x.x:3268 -D "domain\admin" -w "password" -b "dc=domain,dc=local" -s sub "(objectClass=user)"
参数说明:
-H ldap://x.x.x.x:3268:改为连接域控的全局编录端口-s sub:显式指定搜索范围为基准DN下的所有子树,覆盖所有子域的目录分区(objectClass=user):过滤仅返回用户对象,避免返回其他无关目录资源
方案2:单独指定子域基准DN查询
如果无法使用GC端口,可直接将查询基准DN改为子域的DN即可查询指定子域的用户:
ldapsearch -x -H ldap://x.x.x.x -D "domain\admin" -w "password" -b "dc=child1,dc=domain,dc=local" -s sub "(objectClass=user)"
注意事项
- GC默认仅同步AD属性集内的部分通用属性,如果需要查询未同步到GC的自定义属性,需使用方案2单独查询对应子域,或在AD架构中把目标属性加入GC同步列表
- 绑定的账号需要拥有对应子域的目录读取权限,否则会返回权限报错或空结果
- 林内存在多个子域时,方案1可一次性返回所有子域的用户数据,无需逐个指定子域DN
内容的提问来源于stack exchange,提问作者sloweriang
相关产品推荐
相关产品推荐

