首页 > 解决方案 > get-adgroupmember 不一致地返回组成员

问题描述

从 powershell 2 开始我就一直在写 powershell,我遇到了一些我以前从未见过的奇怪的东西。

$groups = get-adgroup -filter {name -like 'SomeGroup*'} | select name | sort name

foreach ($group in $groups){
    $groupsid = $group.name
    write-host $groupsid
    Get-ADGroupMember $groupsid | select name | sort name
    write-host "`n`n"
}

循环中仅枚举某些组中get-adgroupmember的成员,而不是其他组中的成员。foreach

如果"$groupsid" = "DeveloperGroup"get-adgroupmember DeveloperGroup | select name | sort name在 shell 中使用,那么我会得到我期望看到的内容:组成员列表。foreach但是对于第一行列举的几个组,当在循环中执行完全相同的 cmdlet 时,我什么也得不到。我知道一些 cmdlet 仍然有点问题,只是不知道为什么这在循环决定获取的内容中是断断续续的。

标签: powershellactive-directory

解决方案


@Doug Maurer 评论很有帮助,可能是问题的一部分。

另一个问题:避免使用组名。或者直接使用组对象作为Get-ADGroupMembercmdlet 的输入,如下所示,或者使用DistinguishedName组的属性。

foreach ($group in $groups){
    Get-ADGroupMember $group | select name | sort name
    write-host "`n`n"
}

推荐阅读