【问题标题】:Get-ADGroupmember with two GroupsGet-ADGroupmember 与两个组
【发布时间】:2022-01-23 20:24:10
【问题描述】:

我有两个 AD 组,想提取他们的成员。如果我指定一个组,我可以运行脚本。当我放入第二组时,我不可能生成两个不同的报告。你能帮帮我吗?

$ADGroup= "Group_Test","Group_Test_ABC"
$Group = Get-ADGroupMember -Identity $ADGroup | ? {$_.objectclass -eq "user"}
$Path = "C:\Temp\$ADGroup $((Get-Date).ToString("(yyyy-MM-dd)")).xlsx"

$Result =
foreach ($User in $Group) {
    Get-ADUser -Identity $User -Properties * | Select @{n='ADGROUP NAME';e={$ADGroup}}, @{n="DisplayName";e={$_.DisplayName}}, @{n='SamAccountName';e={$_.SamAccountName}}, @{n='UPN';e={$_.UserPrincipalName}}
}

$Result | Export-Excel -Path $Path

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    Get-ADGroupMember 仅将一组作为输入,如果您需要查询多个组,则需要遍历组:

    $ADGroup = "Group_Test", "Group_Test_ABC"
    $result = foreach($group in $ADGroup)
    {
        $members = Get-ADGroupMember -Identity $group | Where-Object {
            $_.objectclass -eq "user"
        }
    
        foreach($member in $members)
        {
            $user = Get-ADUser $member -Properties DisplayName
    
            [pscustomobject]@{
                'ADGROUP NAME'    = $group
                DisplayName       = $user.DisplayName
                SamAccountName    = $user.SamAccountName
                UserPrincipalName = $user.UserPrincipalName
            }
        }
    }
    
    $Path = "C:\Temp\$ADGroup $((Get-Date).ToString("(yyyy-MM-dd)")).xlsx"
    $Result | Export-Excel -Path $Path
    

    上述方法有另一种替代方法,效率更高,但它只会找到当前域中存在的那些用户,如果不同域中存在成员(用户),则不会找到它们。

    $result = foreach($group in $ADGroup)
    {
        $thisGroup = Get-ADGroup $group
        $splat = @{
            LDAPFilter = "(memberOf=$($thisGroup.DistinguishedName))"
            Properties = 'DisplayName'
        }
        $users = Get-ADUser @splat
        foreach($user in $users)
        {
            [pscustomobject]@{
                'ADGROUP NAME'    = $thisGroup.SamAccountName
                DisplayName       = $user.DisplayName
                SamAccountName    = $user.SamAccountName
                UserPrincipalName = $user.UserPrincipalName
            }
        }
    }
    

    【讨论】:

    • 太棒了!谢谢它完美地工作。
    • @ak2595 乐于助人:)
    猜你喜欢
    • 2018-09-26
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多