如何获取用户所属的所有组?

200
PowerShell的Get-ADGroupMember cmdlet返回特定组的成员。是否有一个cmdlet或属性可以获取特定用户所属的所有组?

1
请参考以下链接:https://dev59.com/sHRB5IYBdhLWcg3wSVi1 和 http://technet.microsoft.com/en-us/library/dd315351.aspx。你确定Get-Member命令做的是你认为它做的事情吗? - tiago2014
2
你可以快速使用 net user /domain username 命令,也可以在 Get Groups in which a user is a member Using PowerShell 中查看其他方法。 - Mohamed
32个回答

0

这是获取名称的最简单方式:

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}


0

我使用这个简单的一行代码来递归地搜索用户所属的所有组:

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" }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接