微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有一个问题,需要例如在 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 级别,如果未找到组,并且如果找到的组也是我正在查找的组,它将多次列出它们。

感谢任何帮助。

解决方法

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

$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
,

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。