PowerShell的
Get-ADGroupMember
cmdlet返回特定组的成员。是否有一个cmdlet或属性可以获取特定用户所属的所有组?这是获取名称的最简单方式:
Get-ADPrincipalGroupMembership "YourUserName"
# 返回
distinguishedName : CN=users,OU=test,DC=SomeWhere
GroupCategory : Security
GroupScope : Global
name : testGroup
objectClass : group
objectGUID : 2130ed49-24c4-4a17-88e6-dd4477d15a4c
SamAccountName : testGroup
SID : S-1-5-21-2114067515-1964795913-1973001494-71628
添加一个选择语句来修剪响应或获取每个用户在OU中所属的每个组:
foreach ($user in (get-aduser -SearchScope Subtree -SearchBase $oupath -filter * -Properties samaccountName, MemberOf | select samaccountName)){
Get-ADPrincipalGroupMembership $user.samaccountName | select name}
我使用这个简单的一行代码来递归地搜索用户所属的所有组:
Get-ADPrincipalGroupMembership $UserName | foreach-object { Get-ADPrincipalGroupMembership $_.SamAccountName | select SamAccountName }
为了筛选出用户是否是特定组的成员,我使用以下代码:
if ( Get-ADPrincipalGroupMembership $UserName | foreach-object { Get-ADPrincipalGroupMembership $_.SamAccountName | select SamAccountName } | where-object {$_.SamAccountName -like "*$Groupname*"} ) { write-host "Found" } else { write-host "not a member of group $Groupname" }
net user /domain username
命令,也可以在 Get Groups in which a user is a member Using PowerShell 中查看其他方法。 - Mohamed