【问题标题】:Get-ADGroup with -recursive is not working?带有 -recursive 的 Get-ADGroup 不起作用?
【发布时间】:2018-01-04 00:52:37
【问题描述】:

我正在使用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

我的目标是显示用户名和他们的邮件 iDS,这对我有用:

Get-ADGroupMember -server $domain -identity $s -Recursive -ErrorAction Stop | Get-AdUser -Properties mail -ErrorAction Stop | select sAmAccountName, Mail

任何解决方法? (我愿意写一个递归函数来获取大组,但必须有更短更直接的方法)

【问题讨论】:

  • 您是否检查过管道中的每个步骤都返回了正确的输出?首先注释掉第一个 | 之后的所有内容,然后是第二个,然后是第三个,依此类推。它会让您深入了解问题所在。
  • 什么都没有。如果我只是使用 Get-ADGroup -Identity "DEPT_120_SA" -server "mhf.mhc" -Properties * ,它会给我一个用户和组的列表。我无法使用 -recursive 进一步重申这些组。当我使用 get-adgroupmember 时会发生这种情况。
  • 你完全确定这个组有子组吗? -recurse 不起作用似乎很奇怪。但是,我刚刚意识到:Get-ADGroupMember 已经返回 ADUsers,因此之后无需使用Get-ADUser。在Get-ADGroupMember 之后直接添加-properties mailselect SAMAccountName... 等如何工作?
  • Get-ADGroupmember 不是我关心的问题。我确信可以将其细化为更短的代码 sn-p。 Get-ADGroup yes 不能与 -recursive 一起使用,而且我的组确实有子组。
  • Get-ADGroup 返回一个组,而不是用户,那么为什么要将它通过管道传输到 Get-ADUser?这行不通,相反,只需使用 Get-ADGroupmember。我是不是误会了?

标签: powershell active-directory


【解决方案1】:

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 是您希望其成员加入的组的专有名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2023-03-27
    • 2020-06-30
    • 2011-09-12
    • 2023-03-29
    相关资源
    最近更新 更多