Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
Import-Module ActiveDirectory
# 결과를 저장할 CSV 파일 경로
$OutputFile = "C:\AD_All_Group_Members.csv"
# 모든 그룹을 가져와서 변수에 저장
$Groups = Get-ADGroup -Filter * -Properties SamAccountName
# 결과를 저장할 빈 배열 생성
$Result = @()
# 각 그룹을 순회하며 멤버 추출
foreach ($Group in $Groups) {
# Get-ADGroupMember를 사용하여 그룹의 모든 멤버 가져오기
$Members = Get-ADGroupMember -Identity $Group -Recursive | Where-Object {$_.ObjectClass -eq "user"}
# 각 멤버의 정보를 결과 배열에 추가
foreach ($Member in $Members) {
$Result += [PSCustomObject]@{
GroupName = $Group.SamAccountName
UserName = $Member.SamAccountName
DisplayName = $Member.Name
}
}
}
# 최종 결과를 CSV 파일로 내보내기
$Result | Export-Csv -Path $OutputFile -NoTypeInformation -Encoding UTF8
‐--------------
스크립트 설명:
1. 그룹정보 가져오기
Get-ADGroup -Filter *: Active Directory 내의 모든 그룹을 가져옵니다.
foreach ($Group in $Groups): 가져온 그룹들을 하나씩 반복합니다.
Get-ADGroupMember -Identity $Group -Recursive: 현재 그룹($Group)의 모든 멤버를 가져옵니다. -Recursive를 사용하면 하위 그룹에 속한 사용자도 포함됩니다.
Where-Object {$_.ObjectClass -eq "user"}: 결과에서 그룹 객체를 제외하고 사용자 객체만 필터링합니다.
Export-Csv: 최종 결과($Result 배열)를 지정된 경로의 CSV 파일로 저장합니다.
2. CSV 파일 생성
위 스크립트를 실행하면 C:\ 드라이브에 AD_All_Group_Members.csv 파일이 생성됩니다. 이 파일을 열면 다음과 같은 형식으로 모든 그룹과 그 멤버 목록을 확인할 수 있습니다.