Active Directory 사용자의 "회원"탭에 대한 자세한 목록을 내보내는 방법은 무엇입니까?


8

나는 현재 내가 일하고있는 회사의 Active Directory 사용자 목록과 그 일을 한 사람이 끔찍한 일을했으며 더 이상 여기서 일하지 않는 구조를 변경하는 중입니다.

내 질문은 다음과 같습니다 . 사용자 차트의 "회원"탭에 포함 된 모든 정보가 포함 된 Excel 스프레드 시트를 (이상적으로) 갖고 싶습니다.

쿼리를 만들려고했지만 결과는 "멤버"탭의 실제 내용이 아니라 "어떤 멤버"인 사용자 목록 만 제공합니다.

명령 프롬프트를 통해 또는 Active Directory에서 직접 수행 할 수있는 방법이 있습니까?

공정한 경고 : 나는 VBS와 Powershell에 대해 아무것도 모른다.

답변:


7

사용자의 그룹 멤버십을 얻으려면 다음 PowerShell 명령을 실행하십시오 .

Get-ADPrincipalGroupMembership $Username | Select Name | out-file "filepath" 원하는 문서 이름을 포함하여 문서를 저장하려는 위치 "

$Username쿼리중인 사용자의 이름은 어디에 있습니까 ?


IMO 이것은 작업에 대한 올바른 도구입니다.
blaughw

3

이것이 있습니다. CSV로 덤프하려면 약간의 PowerShell을 배워야합니다. 지금은 텍스트 파일로 덤프합니다.

$users = Get-ADUser -Filter * -Properties * -SearchBase "OU=something,DC=domain,DC=net"
foreach ($user in $users) {
    $file = $user.Name + '_ACL'        
    (Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Out-File c:\PSResults\$file.txt
    }

CSV 출력으로 작동시키는 데 시간이 걸리지 않았습니다.

-csv로 내보내려면 출력 파일 경로를 저장하려는 경로로 변경하고 document.csv 이름 (예 : 출력 파일 C : \ PSResults \)을 변경하십시오. $ file.csv는 $ file이라는 CSV로 내 보냅니다.


조쉬 R이 저를 때리는 걸 보았습니다. 그의 것 또한 더 간단합니다.
mortenya

1
그러나 하위 버전의 PowerShell에서는 작동합니다.
Josh

사실, 나는 PowerShell 경험을 가진 유일한 사람이기 때문에 그룹에서 스크립트를 공유 할 때와 2.0 이상으로 업그레이드 한 유일한 사람인
mortenya

제가 생각하기에 Get-ADPrincipalGroupMembership2.0 이라고 생각 합니다. 내가 무슨 생각을했는지 모르겠다.
Josh

답장을 보내 주셔서 감사합니다. 직장에서 조쉬 R의 내일을 시험해 볼게요. 실제로 훨씬 더 단순 해 보이기 때문입니다. 내가 오해하지 않는 한 내 도메인의 모든 사용자에 대해이 쿼리를 생성해야합니까? 또는 Mortenya의 것을 사용한다면 처음으로 완전한 목록을 생성합니까? 내가 올바르게 이해하고 있는지 확인하고 싶습니다! :)

1

이 쿼리 문자열을 입력하여 "AD 사용자 및 컴퓨터"의 사용자를 포함하는 OU에 적용된 새 쿼리를 만들고 정의 할 수 있습니다.

(&(&(&(&(objectCategory=user)(userAccountControl=512)))))

그런 다음 AD 창의 맨 위에있는 "내보내기 목록"을 사용하여 결과를 csv로 내 보냅니다.


0

파일을 CSV로 가져 오려면 코드에서 "Out-File c : \ PSResults \ $ file.txt"를 "Export-CSV -path c : \ PSResults \ $ file.csv -NoTypeInformation"으로 바꾸십시오.

따라서 다음과 같이 보일 것입니다.

$users = Get-ADUser -Filter * -Properties * -SearchBase "OU=something,DC=domain,DC=net"
foreach ($user in $users) {
$file = $user.Name + '_ACL'        
(Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Export-CSV -path c:\PSResults\$file.csv -NoTypeInformation
}

그러나 다른 사람들이 이미 게시 한 것처럼 아래는 쉬운 라이너이므로 사용하는 것이 가장 좋습니다.

Get-ADPrincipalGroupMembership USERNAME | Select Name | Export-CSV -path C:\Temp\file.csv -NoTypeInformation

중첩 된 그룹 사람이있는 경우에는 작동하지 않습니다. 한 명의 사용자가 20 개의 그룹의 구성원 인 것처럼 표시되지 않습니다
user420934
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.