사용자가 속한 AD 그룹 목록 가져 오기


52

Active Directory에 사용자의 사용자 아이디가 있다고 가정합니다. 해당 사용자가 현재 속해있는 모든 AD 그룹의 목록을 얻고 싶습니다. Windows 명령 줄에서 어떻게해야합니까?

나는 다음을 시도했다.

dsget user "DC=jxd123" -memberof

오류:

dsquery failed:'-memberof' is an unknown parameter.
type dsquery /? for help.

3
dsget을 실행할 때 dsquery에 오류가 발생하지 않습니다. 복사 및 붙여 넣기에 실패 했습니까?
mfinni

참고로, StackOverflow 에서 동일한 질문 을 몇 가지 더 발견했습니다 .
Nic

대답 할만한 명성은 없지만 Powershell을 사용한다고 가정하면 다음과 같이 작성할 수 있습니다. Get-ADPrincipalGroupMembership username | 선택 이름
Avi Parshan

답변:


33

PowerShell에서이 작업을 매우 쉽게 수행 할 수 있습니다. ds 도구로도 할 수 있다고 확신하지만 오래되고 피 각적이며 오늘날 가능한 모든 것에 PowerShell을 사용해야합니다.

Import-Module ActiveDirectory
(Get-ADUser userName –Properties MemberOf | Select-Object MemberOf).MemberOf

더 짧은 버전

(Get-ADUser userName –Properties MemberOf).MemberOf

Powershell을 다운로드했으며 이제 * .msu 파일이 있습니다. * .msu 파일을 사용하여 어떻게 설치합니까?
MacGyver

어떤 운영 체제를 사용하고 있습니까? PowerShell은 XP보다 새로운 기능에 내장되어 있으며 XP에서는 선택적 Windows Update로 제공됩니다.
MDMarra

Windows XP .. 회사가 느립니다 :-\
MacGyver

그런 다음 잘못된 설치 프로그램을 다운로드했습니다. 또한 XP 지원은 1 년 안에 끝납니다. 업그레이드 이동! microsoft.com/en-us/windows/endofsupport.aspx
MDMarra

1
Get-ADPrincipalGroupMembershipPowerShell에서이를 수행하는 또 다른 방법입니다.
Nic

83

또는 net user 명령으로 ...

net user /domain username

3
"이전"DOS 명령 중 일부가 제공하는 단순성을 좋아합니다. 그리고 그들은 당신이 오래된 기계에 PoSH를로드하지 않더라도 항상 거기에 있었으므로 DOS가 구출되었습니다! 이것을 게시 해 주셔서 감사합니다.
Jeff Moden

3
이것은 명시 적이지만 내재적 그룹 멤버쉽은 리턴하지 않습니다.
Elias Probst

11
매끄러운 명령, 그러나 출력의 그룹 이름은 21 자로 잘립니다 ... :-(
t0r0X

1
예, 한계가 있습니다. 중첩 된 그룹 멤버쉽이 표시되지 않고 사용자가 맞습니다. 출력이 잘립니다. 분명히, 나는 후자를 고려하지 않았습니다.
Jack

훌륭하게 작동했지만 왜 잘릴 것입니까? 전체 그룹 이름에 추가 할 수있는 구성 / 매개 변수가 있습니까?
ThinkCode

36

모듈이 필요없는 한 줄은 현재 기록 된 사용자 $ ($ env : username)을 사용하며 다른 Windows 시스템에서 실행됩니다.

(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf

이 vbs / powershell 기사의 제안 : http://technet.microsoft.com/en-us/library/ff730963.aspx


2
매우 좋은 솔루션, 추가적인 softwar를 설치하지 않고 나를 위해 일한 유일한 솔루션! 감사!
t0r0X

2
추가 소프트웨어없이 제한된 시스템에서 작업 할 경우 +1!
Saustrup


8

PowerShell :

Get-ADPrincipalGroupMembership -Identity jdoe | Format-Table -Property name

7

당신이 당신의 자신의 그룹을 참조해야하는 경우있다 whoami /groups:

현재 사용자가 속한 사용자 그룹을 표시합니다.

이 명령의 장점은 net user /domain username암시 적 그룹 멤버쉽도로 표시된다는 것입니다 whoami.


최고의 솔루션. 공감. 짧고 달다. 잘리지 않습니다. 개인적으로 나는 LIST 형식이 가장 좋습니다. 즉 whoami /groups /fo list, 눈으로 읽는 것이 가장 쉽기 때문입니다.
peterh

6

다른 접근 방식 : Windows 계정 토큰의 모든 암시 적 그룹 구성원을 나열하는 PowerShell 스크립트 제한된 시스템에서 작동합니다.

$token = [System.Security.Principal.WindowsIdentity]::GetCurrent() 
ForEach($group in $token.Groups){
    $group.Translate([System.Security.Principal.NTAccount])
}

3
dsquery user -samid "user id" | dsget user -memberof > userid_memberof.txt

2
$ADUser = Read-Host "Provide the AD User account"
Get-ADPrincipalGroupMembership -Identity $ADUser | Sort-Object name | Format-Table -Expand name


1

이 PowerShell 버전은 그룹의 DN이 아닌 AD 그룹 이름 만 반환합니다. 'select-object'출력은 CSV 또는 테스트 파일로 쉽게 파이프 될 수 있습니다.

(Get-ADUser ExampleUser –Properties MemberOf).memberof | Get-ADGroup | Select-Object name


0

Powershell은 훌륭하고 깨끗한 출력을 제공합니다.

(get-aduser USER -Properties MemberOf | select MemberOf).MemberOf | % {$_.split(",")[0].replace("CN=","")}

0

주어진 도메인에서 모든 도메인을 검색하는 솔루션은 다음과 같습니다 (각 도메인에 대한 적절한 권한이 있다고 가정).

# provide the logon name here:
$user="alice"
$allGroups=@()

foreach ( $d in (Get-ADForest example.net).domains ) { Write-Output "Looking up $user in domain $d"; $allGroups += Get-ADPrincipalGroupMembership $user -ResourceContextServer $d }

$allGroups | ft name,GroupScope,distinguishedName -AutoSize

사용 은 Get-ADPrincipalGroupMembership


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.