LDAP查询不支持组通配符,Active Directory多组成员查询替代方案求助
AD批量查询指定前缀用户组成员的解决方案
通配符查询插件相关说明
LDAP协议针对memberOf这类DN(可分辨名称)属性的查询,原生不支持前缀/后缀通配符匹配,这是Active Directory底层的设计限制,不存在可突破该限制的第三方插件,无需花费精力查找相关工具。
归集成员到统一大组的方案可行性
该方案完全可行,但无需实际创建实体大组即可实现同等效果,避免额外的组权限变更和运维成本。
推荐落地实现方案(仅需PowerShell,无需额外工具)
AD的组名属性(Name、sAMAccountName)支持通配符筛选,可以先查询符合规则的组,再批量提取成员,完整实现步骤如下:
- 第一步:查询所有符合名称前缀规则的用户组,示例命令:
Get-ADGroup -Filter 'Name -like "T*"' -SearchBase "ou=Gruppen, ou=Test Users, dc=Test,dc=local" - 第二步:遍历查询到的组,提取所有成员并去重汇总,完整脚本如下:
# 配置组所在的OU路径 $searchBase = "ou=Gruppen, ou=Test Users, dc=Test,dc=local" # 查询所有名称以T开头的目标组 $targetGroups = Get-ADGroup -Filter 'Name -like "T*"' -SearchBase $searchBase $allMembers = @() # 遍历组提取成员,-Recursive参数可展开嵌套组的成员 foreach ($group in $targetGroups) { $groupMembers = Get-ADGroupMember -Identity $group.DistinguishedName -Recursive $allMembers += $groupMembers } # 去重后导出为CSV文件 $allMembers | Select-Object Name, SamAccountName, UserPrincipalName -Unique | Export-Csv -Path "C:\AD_Group_Members.csv" -NoTypeInformation
- 如果后续需要频繁查询该批组的成员,可以创建AD动态安全组,配置规则自动包含所有T开头组的成员,无需手动维护成员列表。
注意事项
- 成员数量较多时,可在
Get-ADGroupMember后添加-ResultSetSize $null参数,避免默认结果数限制导致返回数据不全 - 运行脚本需要提前安装Active Directory模块,域控默认已安装,域内成员机可通过安装RSAT工具的AD PowerShell组件获取该模块
内容的提问来源于stack exchange,提问作者Mister Dobby
相关产品推荐
相关产品推荐

