【问题标题】:Powershell: Get all members and their groups that are members of a specific groupPowershell:获取属于特定组的所有成员及其组
【发布时间】:2014-03-01 07:46:20
【问题描述】:

这听起来令人困惑。例如。我有一个群组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

【问题讨论】:

  • 这将有助于以您想要的格式提供输出示例。组成员身份 (memberof) 是一个多值属性,这些属性并不总是适合 .csv。您需要决定是否希望每个用户一行,将成员资格列表作为分隔字符串放在一个字段中,或者是否希望每个组成员资格一行,多行具有相同的用户。
  • 多行拥有相同的用户是最好的,因为我需要每个成员所属的每个组的信息

标签: powershell active-directory


【解决方案1】:

我不确定您到底在寻找什么,但听起来您正在寻找父组中的用户属于哪些组,您可以通过以下方式完成:

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多