我正在使用get-adgroupmember
命令获取AD组中的所有用户。 -recursive
正在帮助我从子组中获取成员(如果在父组中也是如此)。
但是,get-adgroupmember
的上限仅为5000个条目。
要解决这个问题,如果我使用:
Get-ADGroup -Identity "DEPT_120_SA" -server "A" -Properties * | select-object -expandproperty members |get-aduser
这不起作用,因为我的父AD有子AD并且-recursive
不接受get-adgroup
。
错误:
Get-ADGroup:找不到与参数名称匹配的参数 “递归”。在线:2字符:79 + Get-ADGroup -Identity“DEPT_120_SA”-server“mhf.mhc”-Properties * -recursive<<<< | select-object -expandproperty成员 + CategoryInfo:InvalidArgument:(:) [Get-ADGroup],ParameterBindingException + FullyQualifiedErrorId:NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADGroup
我的目标是显示用户名和他们的邮件iDS,这对我有用:
Get-ADGroupMember -server $domain -identity $s -Recursive -ErrorAction Stop | Get-AdUser -Properties mail -ErrorAction Stop | select sAmAccountName, Mail
任何解决方法? (我愿意写一个递归函数来获取大型组,但必须有一个更短更直接的方法)
答案 0 :(得分:0)
5000限制仅适用于Get-ADGroupMembers
而不是Get-ADUsers
,因此我们可以使用LDAP_MATCHING_RULE_IN_CHAIN匹配规则(OID 1.2.840.113556.1.4.1941)
。
例如:
Get-AdUser -LdapFilter "(memberOf:1.2.840.113556.1.4.1941:=cn=group,cn=users,DC=ad,DC=local)"
其中cn=group,cn=users,DC=ad,DC=local
是您希望成员所在的组的专有名称。