如何使用powershell从AD中的组获取嵌套组名称

new9mtju  于 2022-12-13  发布在  Shell
关注(0)|答案(2)|浏览(143)

我有一个问题,需要在Active Directory中使用powershell示例,以递归方式获取属于某个组的所有组。
如果A组中有B,B组中有C那么我需要包括A在内的所有组的名字.
如果C也有A,我不想让它进入无限循环。
这是目前为止我的代码。

$groupname = "a","b","c"

foreach($grouphp in groupname)
{
$groupname += (get-adgroupmember -server $domain -identity $grouphp | where-object {$_.objectclass -like "group"}).name

}
这会将它们添加到$groupname 1级别也给我错误,如果组没有找到,如果组找到也是我正在寻找的组,它会列出他们多次。
任何帮助都很感激。

wz8daaqr

wz8daaqr1#

请使用以下脚本从嵌套组中获取用户:

https://gallery.technet.microsoft.com/Get-nested-group-15f725f2
mec1mxoz

mec1mxoz2#

您可以创建一个列表来跟踪,然后只添加以前未添加的内容。

$groupname = "a","b","c"

$grouplist = New-Object System.Collections.Generic.List[string]

foreach($group in $groupname)
{
    if($group -notin $grouplist){$grouplist.Add($group)}

    Get-ADGroupMember -server $domain -Identity $group |
        Where-Object objectclass -like "group" | ForEach-Object {
            if($_.name -notin $grouplist){$grouplist.Add($_.name)}
    }
}

$grouplist

相关问题