首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从AD组中获取特定AD用户

从AD组中获取特定AD用户
EN

Stack Overflow用户
提问于 2021-02-19 18:19:37
回答 1查看 61关注 0票数 0

我需要从Active Directory中的特定组中获取特定用户。

到目前为止,我有这样的想法:

代码语言:javascript
复制
$Groupnames = get-adgroup -Filter "name -like '$Groupfilter'" -Properties * -SearchBase $Grouppath |
    Select-Object Name, @{
        Name='Username';
        Expression={
            Get-ADGroupMember -identity $($_.Name) -Recursive |
            Get-ADUser -Property SamAccountName |
            Select -ExpandProperty SamAccountName
        }
    }

这样就可以获得具有其名称的组。现在,我想要获取这些组中的所有用户。除了格式化之外,什么都能起作用。我想要的是:

代码语言:javascript
复制
Name                               Username                                                                                
----                               --------                                                                                
Group1                             user1adm                                                                             
Group2                             {user1adm, user1, user2, user2adm...}                                      
Group3                             {user1adm, user3, user2adm, user6...}

但我得到的是:

代码语言:javascript
复制
{user1adm, user1, user2, user2adm...}

使用这种格式,我无法看到所有用户。

我最后的目标也是排除以adm结尾的用户,但我不知道如何做到这一点。

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 23:56:16

Get-ADGroupMember可以返回类型为' user‘、'group’或'computer‘的对象,因此如果其中一个对象不是用户,则通过管道将返回的对象直接传递给Get-ADUser可能会给您带来麻烦。

话虽如此,从Get-ADGroupMember返回的对象已经包含了您想要的SamAccountName属性,因此您可以从代码中删除Get-ADUser。

代码语言:javascript
复制
$Groupnames = Get-ADGroup -Filter "name -like '$Groupfilter'" -SearchBase $Grouppath | 
                Select-Object Name, 
                @{Name = 'Username'; Expression = { 
                        ($_ | Get-ADGroupMember -Recursive | 
                              Select-Object -ExpandProperty SamAccountName | 
                              Where-Object { $_ -notmatch 'adm$' } 
                        ) -join ', '
                    }
                }

# output the result on screen
$Groupnames | Format-Table -AutoSize

# output to CSV file
$Groupnames | Export-Csv -Path 'Path\To\The\GroupMembers.csv' -NoTypeInformation
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66275706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档