<Power Shell>11 查找Active Directory中的所有组同组成员

本文介绍了一种使用PowerShell脚本的方法来查找活动目录中具有相同成员的多个组,并展示了如何导出这些组及其成员到CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天突然有人问我,如果你是我,如何找出那些具有相同AD的组的成员呢?
其实,我们通过简单的解析DirectoryServices.DirectorySearcher或者[adsisearcher]类的输出,我们就能够得到。

下面的示例由具有相同的组成员资格的组的数目对结果进行分组和排序:


1
2
3
4
5
6
7
8
9
10
11
12
$Searcher  [adsisearcher] '(member=*)'
$Searcher .PageSize = 500
$Searcher .FindAll() |   ForEach-Object  {
                                                      
     New-Object  -TypeName  PSCustomObject  -Property  @{
         DistinguishedName =  $_ .Properties.distinguishedname[0]
         Member =  $_ .Properties.member  -join  ';'
     }
                                                      
} |  Group-Object  -Property  member |
Where-Object  { $_ .Count  -gt  1} |
Sort-Object  -Property  Count  -Descending


输出类:

1
2
3
4
Count Name                      Group
----- ----                      -----
    15 CN=Domain Users,CN=Use... {@{distinguishedname=CN=test123...
    13 CN=Domain Users,CN=Use... {@{distinguishedname=CN=test456...



要得到组名和组成员,组对象cmdlet的输出应该利用expandproperty 对象进行扩大查找。
此方法输出将被导出名为CSV文件,生成的AD 中包括完整的相同成员的命名管道。

1
2
3
4
5
6
7
8
9
10
11
12
13
$Searcher  [adsisearcher] '(member=*)'
$Searcher .PageSize = 500
$Searcher .FindAll() |  ForEach-Object  {
                                        
     New-Object  -TypeName  PSCustomObject  -Property  @{
         DistinguishedName =  $_ .Properties.distinguishedname[0]
         Member =  $_ .Properties.member  -join  ';'
     }
                                        
} |  Group-Object  -Property  member |  Where-Object  { $_ .Count  -gt  1} |
Sort-Object  -Property  Count  -Descending  |
Select-Object  -ExpandProperty  Group |
Export-Csv  -Path  GroupWithIdenticalMembership.csv  -NoTypeInformation


就像下面我得到的那样
103044234.jpg




     本文转自cantgis 51CTO博客,原文链接:http://blog.51cto.com/cantgis/1229883,如需转载请自行联系原作者






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值