如何获取多域成员AD组中仅A域的成员并解决执行报错
解决跨域AD组成员查询错误及筛选指定域成员的方法
1. 先修正命令拼写错误
你之前执行的Get-ADGroupMembers是错误的,正确命令名称是Get-ADGroupMember(末尾没有多余的s),这就是-Server参数不被识别的直接原因。
2. 解决ADException 8224错误
这个错误通常出现在跨域查询场景,默认AD查询端口(389)无法访问跨域成员的全局信息,解决方法是指定全局编录服务器及端口(3268):
Get-ADGroupMember -Identity targetgroup -Server "DomainControllerfromdomainA:3268"
同时需要确保:
- 当前执行命令的账号拥有跨域查询AD的权限
- A域与B域之间存在有效的双向信任关系
3. 筛选仅A域的成员
获取完整成员列表后,通过Where-Object筛选归属A域的成员,提供两种常用方式:
方式一:通过NetBIOS域名筛选
Get-ADGroupMember -Identity targetgroup -Server "DomainControllerfromdomainA:3268" | Where-Object { $_.Domain -eq "A域的NetBIOS名称" }
方式二:通过DistinguishedName中的域信息筛选
Get-ADGroupMember -Identity targetgroup -Server "DomainControllerfromdomainA:3268" | Where-Object { $_.DistinguishedName -like "*DC=A,DC=你的域名后缀" }
备选方案:直接查询组的member属性
如果上述命令仍有问题,可以先获取组对象并读取member属性,再逐个查询对象并筛选:
$targetGroup = Get-ADGroup -Identity targetgroup -Server "DomainControllerfromdomainA:3268" -Properties member $targetGroup.member | Get-ADObject -Server "DomainControllerfromdomainA:3268" | Where-Object { $_.DistinguishedName -like "*DC=A,DC=你的域名后缀" }
内容的提问来源于stack exchange,提问作者omoko
相关产品推荐
相关产品推荐

