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

简介:

今天突然有人问我,如果你是我,如何找出那些具有相同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


就像下面我得到的那样




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






相关文章
|
Web App开发 前端开发 JavaScript
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
|
Java Shell 程序员
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
303 0
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
|
Shell 数据安全/隐私保护