【问题标题】:Powershell, how to check group memberships for AD usersPowershell,如何检查 AD 用户的组成员身份
【发布时间】:2011-02-10 23:27:11
【问题描述】:

我想检查某个 OU 中的用户是否是来自另一个特定 OU 的组(以及哪些)的成员。 我怎样才能做到这一点 ?

示例: 我有三个用于用户的 OU(users1OU、users2OU、users3OU)和两个用于各种组的 OU(grups1OU、groups2OU)。

现在我想知道来自 OU users1OU 的用户,他们是来自 OU groups2OU 的哪些组的成员。

我正在使用 powershell 2.0 并赢得 2008 年。

【问题讨论】:

    标签: powershell active-directory powershell-2.0


    【解决方案1】:

    使用 RSAT 工具中的 activedirectory 模块:

     Import-Module activedirectory
    
     $memb = @{}
     foreach ($group in get-adgroup -searchbase "ou=groups2OU,dc=domain,dc=tld" -filter *){
     get-adgroupmember $group |? {$_.distinguishedname -like "*ou=users1OU,*"}|
     %{$memb[$_.name] += @($group.name)
     }
    }
    $memb
    

    枚举 groups2OU 中的组,获取组成员并使用专有名称过滤 users1OU 中的组。以用户名为键创建一个哈希表,并累积一组组名作为值。

    完成后,循环遍历哈希表键,并以所需的任何报告格式输出用户名(键)和组成员身份(值)。

    【讨论】: