클라이언트 컴퓨터가 연결된 지정된 도메인에 대한 도메인 컨트롤러의 이름 / IP 주소를 확인하는 방법을 찾고 있습니다.
우리 회사에는 테스트에 사용하는 작은 네트워크가 많이 있으며 대부분은 자체 작은 도메인을 가지고 있습니다. 예를 들어 도메인 중 하나의 이름은 “TESTLAB”입니다. TESTLAB 도메인의 구성원 인 Windows XP 워크 스테이션이 있고 도메인 컨트롤러의 이름을 파악하여 도메인에 대해 정의 된 사용자를 확인할 수 있습니다. 우리 연구실에는 Windows Server 2000과 Windows Server 2003 (실제로는 두 대의 NT 4 서버)이 혼합되어 있으므로 둘 모두에 적합한 솔루션을 찾는 것이 좋습니다.
인터넷을 보면 Windows Power Shell 또는 nltest와 같은 다양한 유틸리티가있는 것처럼 보이지만 이러한 모든 유틸리티를 사용하려면 다른 유틸리티를 다운로드하여 설치해야합니다. 추가 설치없이 도메인 컨트롤러를 찾는 방법을 찾고 싶었습니다.
편집 도메인 컨트롤러 또는 현재 도메인의 사용자를 찾는 프로그램을 작성하려면 어떻게해야합니까?
답변
가장 간단한 프로그래밍 언어 : DOS 배치
echo %LOGONSERVER%
답변
Windows의 cmd에서 다음 명령을 입력하십시오.
nltest /dclist:{domainname}
특정 도메인의 모든 도메인 컨트롤러를 나열합니다.
답변
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);
}
}
}
}
답변
명령 줄에서 logonserver 환경 변수를 쿼리합니다.
C :> 세트 L
LOGONSERVER = ‘\’\ DCNAME
답변
gpresult
Windows 명령 프롬프트에서 실행하십시오 . 현재 도메인, 현재 사용자, 사용자 및 컴퓨터 보안 그룹, 그룹 정책 이름, Active Directory 고유 이름 등에 대한 풍부한 정보를 얻을 수 있습니다.
답변
Powershell : $ env : logonserver
답변
DomainController
컴퓨터가 속하지 않는 도메인에있는 정보를 검색하려면 더 많은 정보가 필요합니다.
DirectoryContext domainContext = new DirectoryContext(DirectoryContextType.Domain, "targetDomainName", "validUserInDomain", "validUserPassword");
var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
var controller = domain.FindDomainController();