web-dev-qa-ko.com

Windows Active Directory 그룹의 사용자를 나열하는 명령 줄?

특정 Active Directory 그룹의 모든 사용자를 나열하는 명령 줄 방법이 있습니까?

컴퓨터 관리-> 로컬 사용자/그룹-> 그룹으로 가서 그룹을 두 번 클릭하면 그룹에있는 사람을 볼 수 있습니다. .

데이터를 검색하는 명령 줄 방법이 필요하므로 다른 자동 작업을 수행 할 수 있습니다.

138
Flyer

시험

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
37
pQd

다음은 명령 프롬프트의 또 다른 방법입니다. 출력을 구문 분석해야하기 때문에 얼마나 자동화 할 수 있는지 확실하지 않습니다.

그룹이 "글로벌 보안 그룹"인 경우 :

net group <your_groupname> /domain

"도메인 로컬 보안 그룹"을 찾고있는 경우 :

net localgroup <your_groupname> /domain
243
asdasddfg

다음은 특히 OU 구조가 복잡하고 그룹의 전체 고유 이름을 모르는 경우에보다 일반적으로 유용한 ds 명령 버전입니다.

dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand

또는 그룹의 CN (일반적으로 SAM ID와 동일)을 알고 있으면 이름에 공백이있는 경우 인용됩니다.

dsquery group -name "Group Account Name" | dsget group -members -expand

주석에 명시된 바와 같이 기본적으로 ds * 명령 (dsquery, dsget, dsadd, dsrm)은 도메인 컨트롤러에서만 사용할 수 있습니다. 그러나 Windows Server 설치 미디어의 지원 도구 또는 Microsoft 다운로드 사이트의 다운로드 에서 관리 도구 팩을 설치할 수 있습니다.

PowerShell을 사용하여 이러한 쿼리를 수행 할 수도 있습니다. PowerShell은 Server 2008, 2008 R2 및 Windows 7의 설치 가능 기능으로 이미 제공되고 있지만 WinRM 프레임 워크 다운로드 를 설치하여 XP 또는 Vista.

PowerShell에서 AD 관련 cmdlet에 액세스하려면 또한 다음 설치 중 하나 이상을 수행해야합니다.

49
Ryan Fisher

Quest AD 추가 기능이 필요없는 PowerShell 솔루션의 경우 다음을 시도하십시오.

Import-Module ActiveDirectory

Get-ADGroupMember "Domain Admins" -recursive | Select-Object name

중첩 된 그룹도 열거됩니다. 그렇게하지 않으려면 -recursive 스위치를 제거하십시오.

25
pk.

서버와 클라이언트에서 작동하는 매우 쉬운 방법 :

NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"

사용자가 YOURGROUPNAME 그룹에 있으면 1을, 그렇지 않으면 0을 반환합니다

그런 다음 % ERRORLEVEL % 값을 사용할 수 있습니다 (그룹의 사용자 인 경우 0, 그렇지 않은 경우 1).

IF %ERRORLEVEL%==0 Net Use %LOGONSERVER%\YOURGROUPSHARE
17
deajan

PowerShell 및 Quest 소프트웨어의 Active Directory 용 무료 ActiveRoles 관리 셸을 사용하면 다음을 사용할 수 있습니다.

(Get-QADGroup "GroupName") 멤버

http://www.quest.com/powershell/activeroles-server.aspx

10
Gordon Bell

dsgetdsquery를 사용하는 대답은 해당 명령이 다른 버전의 Windows (예 : Windows 7)에 제공되지 않으므로 서버 버전의 Windows에서만 작동합니다. 해당 명령이없는 시스템에서는 AdFind 명령 을 사용하여 원하는 정보를 얻을 수 있습니다.

다음은 그룹 멤버십을 얻기위한 쿼리 예입니다.

AdFind.exe -default -f name="Domain Admins" member -list
7
markshep

로컬 그룹과 사용자를 나열하는 방법?

다음 powershell 스크립트를 사용하여 로컬 그룹과 해당 그룹의 구성원을 나열하십시오.

$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { 

$_.psbase.schemaClassName -eq 'group' } | foreach {
    write-Host $_.name
    write-Host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty', 

$null, $_, $null)}
    write-Host
}

위의 텍스트를 메모장에 복사하고 filename.ps1. 그런 다음 파일을 실행하십시오. 각 그룹에 그룹과 사용자를 표시하거나 powershell에서 실행할 수 있습니다.

4
Sysadmin

UserGroup1의 표시 멤버의 경우 다음을 시도하십시오.

dsquery group -name UserGroup1 | dsget group -members | dsget user -display
3
vadim