¿Cómo puedo averiguar qué computadora es el controlador de dominio en Windows mediante programación?

votos
89

Estoy buscando una manera de determinar cuál es el Nombre / Dirección IP del controlador de dominio para un dominio determinado al que está conectada una computadora cliente.

En nuestra compañía tenemos muchas pequeñas redes pequeñas que usamos para probar y la mayoría de ellas tienen sus propios pequeños dominios. Como ejemplo, uno de los dominios se llama TESTLAB. Tengo una estación de trabajo Windows XP que es miembro del dominio TESTLAB y estoy tratando de averiguar el nombre del controlador de dominio para que pueda ver qué usuarios se han definido para el dominio. En nuestro laboratorio hay una mezcla de Windows Server 2000 y Windows Server 2003 (y en realidad probablemente un par de servidores NT 4) por lo que sería bueno encontrar una solución que funcione para ambos.

Al buscar en Internet, parece que hay varias utilidades, como Windows Power Shell o nltest, pero todas requieren que descargue e instale otras utilidades. Esperaba encontrar una forma de encontrar el controlador de dominio sin tener que instalar nada adicional.

EDITAR Si quisiera escribir un programa para encontrar el controlador de dominio o los usuarios en el dominio actual, ¿cómo podría hacer eso?

Publicado el 09/12/2008 a las 21:03
fuente por usuario
En otros idiomas...                            


7 respuestas

votos
239

Con el lenguaje de programación más simple: lote de DOS

echo %LOGONSERVER%
Respondida el 09/12/2008 a las 21:55
fuente por usuario

votos
12

En cmd en Windows, escriba el siguiente commande:

nltest /dclist:{domainname}

En él se enumeran todos los controladores de dominio en el dominio particular

Respondida el 01/10/2015 a las 07:16
fuente por usuario

votos
12

En C # /. NET 3.5 podrías escribir un pequeño programa para hacer:

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

Esto mostrará una lista de todos los usuarios en el dominio actual:

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);
           }
       }
    }
}
Respondida el 09/12/2008 a las 21:30
fuente por usuario

votos
7

Desde la línea de comando de consulta de la variable logonserver env.

C:> SET L

LOGONSERVER = '\' \ DCNAME

Respondida el 23/02/2015 a las 21:55
fuente por usuario

votos
6

Ejecutar gpresulten un símbolo del sistema de Windows. Usted obtendrá una gran cantidad de información sobre el dominio actual, usuario actual, grupos de seguridad informática de usuario y, nombres de directiva de grupo, Directorio Activo nombre completo, y así sucesivamente.

Respondida el 04/01/2013 a las 03:46
fuente por usuario

votos
0

en Powershell: $ env: logonserver

Respondida el 06/03/2018 a las 06:30
fuente por usuario

votos
0

Para recuperar la información cuando el DomainControllerexiste en un dominio en el que su máquina no pertenece, se necesita algo más.

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

  var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
  var controller = domain.FindDomainController();
Respondida el 13/11/2012 a las 14:30
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more