Powershell:获取属于特定组的所有成员及其组

时间:2014-02-27 13:41:27

标签: powershell active-directory

这听起来令人困惑。例如。我有一个小组Research。我希望列出所有研究组成员,然后列出每个用户所在的每个组。是否有办法做到这一点?

此外,有没有办法确定列出的组是安全组还是分发列表作为输出中的另一列?

例如,这是我一直在使用的代码,我希望它能够如上所述地工作。

Add-PSSnapin Quest.ActiveRoles.ADManagement

$myCol = @()
  ForEach ($Group in (Get-QADGroup "CN=RES,OU=Security,OU=Groups,DC=fff,DC=com" -GroupType Security))
    {
    ForEach ($Member in (Get-QADGroupMember $Group -SizeLimit 0))
        { 
        $myObj = "" | Select Group, Member, Email
        $myObj.Group = $Group.Name
        $myObj.Member = $Member.Name
        $myObj.Email = $Member.Email
        $myCol += $myObj
        }
    }
  $myCol | Export-Csv -Path "C:\Users\sdevito\Desktop\1a.csv" -NoTypeInformation

1 个答案:

答案 0 :(得分:0)

我不确定你到底在寻找什么,但听起来你正在寻找父组中用户所属的组,你可以这样做:

if($Member.Type -eq "User"){Get-QADUser $Member.Name | Select MemberOf}

如果你想更好地合成它,你可以做到:

Get-QADUser $object.Name | Select MemberOf | FL

如果您想知道某个组是安全组还是通讯组,请查看sAMAccountType属性:

Get-QADGroup $groupName -properties sAMAccountType

sAMAccountType将是一堆数字,它取决于组类型。此处列出的安全性和Dstirubtion: 安全组:268435456 分销组:268435457

如果您想了解更多信息,请参阅:Link

希望这有帮助!