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 파일이 생성됩니다. 이 파일을 열면 다음과 같은 형식으로 모든 그룹과 그 멤버 목록을 확인할 수 있습니다.
