PowerShell无法列出全部Active Directory主域控制器,求解决方法
Get-ADDomainController查询所有域控制器报错的解决建议
问题场景
- 可正常执行的命令:
仅返回1个主域控制器Get-ADDomainController -Discover -Site "Default-First-Site-Name" - 目标执行命令(执行时报错):
或Get-ADDomainController -Filter *Get-ADDomainController -Filter * -Server <domain> - 报错信息:
Get-ADDomainController:无法联系服务器。这可能是因为该服务器不存在、当前处于离线状态,或是未运行Active Directory Web Services。
解决建议
利用Discover命令的扩展参数获取所有DC
既然-Discover能正常运行,添加-All参数即可获取指定站点内的所有域控制器,该命令不依赖Active Directory Web Services(ADWS),通过DNS查询获取信息:Get-ADDomainController -Discover -Site "Default-First-Site-Name" -All指定可用DC执行Filter查询
先用Discover命令拿到可用的DC主机名,再将其作为-Server参数值执行查询:# 获取可用的DC对象 $availableDC = Get-ADDomainController -Discover -Site "Default-First-Site-Name" # 用该DC执行全量查询 Get-ADDomainController -Filter * -Server $availableDC.HostName如果仍报错,登录该DC检查
Active Directory Web Services(服务名ADWS)是否启动,必要时重启服务。验证网络与DNS连通性
- 测试域名解析是否正常:
确保返回的DC IP地址是可访问的nslookup <domain> - 测试ADWS服务端口(默认5985/5986)是否开放:
若端口不通,检查DC或本地防火墙是否允许该端口的入站/出站流量Test-NetConnection <dc-hostname> -Port 5985
- 测试域名解析是否正常:
确认权限与运行环境
确保当前PowerShell会话使用域账号运行,且所在机器已加入域,避免因权限不足或非域环境导致的连接失败
内容的提问来源于stack exchange,提问作者Teh__docco
相关产品推荐
相关产品推荐

