How do I find out which computer is the domain con

2019-03-08 06:51发布

I am looking for a way to determine what the Name/IP Address of the domain controller is for a given domain that a client computer is connected to.

At our company we have a lot of small little networks that we use for testing and most of them have their own little domains. As an example, one of the domains is named "TESTLAB". I have an Windows XP workstation that is a member of the TESTLAB domain and I am trying to figure out the name of the domain controller so that I can go and look to see what users have been defined for the domain. In our lab there is a mix of Windows Server 2000 and Windows Server 2003 (and in reality probably a couple of NT 4 Servers) so it would be nice to find a solution that would work for both.

Looking on the Internet, it looks like there are various utilities, such as Windows Power Shell or nltest, but these all require that you download and install other utilities. I was hoping to find a way to find the domain controller without having to install anything additional.

EDIT If I wanted to write a program to find the domain controller or the users in the current domain, how would I go about doing that?

7条回答
Lonely孤独者°
2楼-- · 2019-03-08 06:58

To retrieve the information when the DomainController exists in a Domain in which your machine doesn't belong, you need something more.

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

  var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
  var controller = domain.FindDomainController();
查看更多
在下西门庆
3楼-- · 2019-03-08 06:59

With the most simple programming language: DOS batch

echo %LOGONSERVER%
查看更多
Melony?
4楼-- · 2019-03-08 06:59

From command line query the logonserver env variable.

C:> SET L

LOGONSERVER='\'\DCNAME

查看更多
劳资没心,怎么记你
5楼-- · 2019-03-08 06:59

in Powershell: $env:logonserver

查看更多
干净又极端
6楼-- · 2019-03-08 07:04

Run gpresult at a Windows command prompt. You'll get an abundance of information about the current domain, current user, user & computer security groups, group policy names, Active Directory Distinguished Name, and so on.

查看更多
不美不萌又怎样
7楼-- · 2019-03-08 07:15

In C#/.NET 3.5 you could write a little program to do:

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

This will list all the users in the current domain:

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);
           }
       }
    }
}
查看更多
登录 后发表回答