2008-11-27 32 views
8

¿Alguien puede ayudarme a obtener todos los dominios en Active Directory? Lo he intentado muchas veces, pero todos los programas están enumerando solo el dominio de trabajo actual.Cómo obtener la lista de todos los dominios en Active Directory usando C#

¿Cómo puedo hacer esto?

+0

I bookmarked este enlace el otro día. Ofrece un enfoque para hacer esto usando consultas LDAP. Debería ser adaptable a ADSI. http://itchanged.com/FindingAllDomainsInAnActiveDirectoryForest.html –

Respuesta

1

Usando DirectorySearcher puede conectar y leer la estructura de un Directorio Activo, incluyendo la estructura (unidades de organización, grupos, usuarios, computadoras, controladores de dominio). Para conectarse a un dominio diferente, necesitaría credenciales de ese otro dominio. Tuvimos problemas para conectarnos a otro dominio desde una máquina que pertenece a un dominio diferente al de destino. También tengo curiosidad si eso es posible.

9
Domain domain = Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain, "yourDomain", "username", "password")); 

Forest forest = domain.Forest; 

DomainCollection domains = forest.Domains; 

Lo anterior utiliza el espacio de nombres System.DirectoryServices.ActiveDirectory. Te dará una colección de dominio que contiene todos los dominios que están en el mismo bosque que tu dominio dado.

4

Tuve algunos problemas para que el código de LeeMobile funcione en mi caso porque estaba tratando de encontrar el contexto actual de mi aplicación mientras ejecutaba forest.Domains. Pude sortearlo haciendo algo como esto.

Forest forest = Forest.GetForest(new DirectoryContext(DirectoryContextType.Forest, "yourForestDomain", "username", "password")); 
DomainCollection domains = forest.Domains; 
0

También es posible usar System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest(). Dominios

var domains = Forest.GetCurrentForest().Domains.Cast<Domain>(); 
foreach (var domain in domains) 
{ 
    Console.WriteLine(domain.Name); 
} 
Cuestiones relacionadas