Windows에서 어떤 컴퓨터가 프로그래밍 방식으로 도메인 컨트롤러인지 어떻게 알 수 있습니까?


102

클라이언트 컴퓨터가 연결된 지정된 도메인에 대한 도메인 컨트롤러의 이름 / IP 주소를 확인하는 방법을 찾고 있습니다.

우리 회사에는 테스트에 사용하는 작은 네트워크가 많이 있으며 대부분은 자체 작은 도메인을 가지고 있습니다. 예를 들어 도메인 중 하나의 이름은 "TESTLAB"입니다. TESTLAB 도메인의 구성원 인 Windows XP 워크 스테이션이 있고 도메인 컨트롤러의 이름을 파악하여 도메인에 대해 정의 된 사용자를 확인할 수 있습니다. 우리 연구실에는 Windows Server 2000과 Windows Server 2003 (실제로는 두 대의 NT 4 서버)이 혼합되어 있으므로 둘 모두에 적합한 솔루션을 찾는 것이 좋습니다.

인터넷을 보면 Windows Power Shell 또는 nltest와 같은 다양한 유틸리티가있는 것처럼 보이지만 이러한 모든 유틸리티를 사용하려면 다른 유틸리티를 다운로드하여 설치해야합니다. 추가 설치없이 도메인 컨트롤러를 찾는 방법을 찾고 싶었습니다.

편집 도메인 컨트롤러 또는 현재 도메인의 사용자를 찾는 프로그램을 작성하려면 어떻게해야합니까?


이에 대한 해결책을 작성하는 데 약간의 시간을 소비했기 때문에 프로그래밍 질문으로 만들고 다시 열어 보겠다고 생각했습니다.
tvanfosson

답변:


253

가장 간단한 프로그래밍 언어 : DOS 배치

echo %LOGONSERVER%

아마도 당시 Dorky가 염두에 두었던 것은 아니지만 여전히 대부분의 스레드 독자가 찾고있는 것입니다. 어 ... 그것은 Dorky가 찾고 있던 것이 었습니다. 하!
andersoyvind dec. 07 2011

3
컴퓨터가 속하지 않는 다른 도메인에서 DC를 찾는 경우에는 작동하지 않습니다.
Brett Veenstra 2012

@DorkyEngineer 이것을 선택한 답변으로 표시하는 것은 어떻습니까?
ErikE 2013-01-04

20

Windows의 cmd에서 다음 명령을 입력하십시오.

nltest /dclist:{domainname}

특정 도메인의 모든 도메인 컨트롤러를 나열합니다.


3
그리고 nltest /dclist:모든 도메인리스트에있는 모든 컨트롤러는 내 노트북은 (윈도우 7)에 연결되어
GMasucci

12

C # /. NET 3.5에서는 다음과 같은 작은 프로그램을 작성할 수 있습니다.

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    string controller = context.ConnectedServer;
    Console.WriteLine( "Domain Controller:" + controller );
} 

현재 도메인의 모든 사용자가 나열됩니다.

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    using (UserPrincipal searchPrincipal = new UserPrincipal(context))
    {
       using (PrincipalSearcher searcher = new PrincipalSearcher(searchPrincipal))
       {
           foreach (UserPrincipal principal in searcher.FindAll())
           {
               Console.WriteLine( principal.SamAccountName);
           }
       }
    }
}

7

명령 줄에서 logonserver 환경 변수를 쿼리합니다.

C :> 세트 L

LOGONSERVER = '\'\ DCNAME


6

gpresultWindows 명령 프롬프트에서 실행하십시오 . 현재 도메인, 현재 사용자, 사용자 및 컴퓨터 보안 그룹, 그룹 정책 이름, Active Directory 고유 이름 등에 대한 풍부한 정보를 얻을 수 있습니다.


보고서를 얻으려면 "/ R"인수를 사용해야했습니다.
Josiah

당신은 시도해야합니다 gpresult /Z!!
ErikE 2015-09-22

/ Z의 장점은 무엇입니까? 사용중인 DC를 결정하기위한 목적으로는 비교할 수있는 것 같습니다.
요시야

1
사람들은 사용 가능한 정보가 풍부하기 때문에 옵션으로 안내되기를 원할 수 있습니다. 그러나 사용중인 DC의 경우 다른 옵션이 더 간결합니다.
ErikE 2015 년


0

DomainController컴퓨터가 속하지 않는 도메인에있는 정보를 검색하려면 더 많은 정보가 필요합니다.

  DirectoryContext domainContext =  new DirectoryContext(DirectoryContextType.Domain, "targetDomainName", "validUserInDomain", "validUserPassword");

  var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
  var controller = domain.FindDomainController();
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.