【问题标题】: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 中的组。以用户名为键创建一个哈希表,并累积一组组名作为值。
完成后,循环遍历哈希表键,并以所需的任何报告格式输出用户名(键)和组成员身份(值)。