Pregunta

Estoy tratando de obtener todos los dominios disponibles en el cuadro de diálogo de inicio de sesión de Windows (en el menú desplegable del dominio).

He probado el siguiente código, pero solo devuelve el dominio en el que estoy registrado. ¿Me estoy perdiendo de algo?

StringCollection domainList = new StringCollection();
try
{
    DirectoryEntry en = new DirectoryEntry();
    // Search for objectCategory type "Domain"
    DirectorySearcher srch = new DirectorySearcher(en, "objectCategory=Domain");
    SearchResultCollection coll = srch.FindAll();
    // Enumerate over each returned domain.
    foreach (SearchResult rs in coll)
    {
        ResultPropertyCollection resultPropColl = rs.Properties;
        foreach( object domainName in resultPropColl["name"])
        {
            domainList.Add(domainName.ToString());
        }
    }
}
catch (Exception ex)
{
    Trace.Write(ex.Message);
}
return domainList;
¿Fue útil?

Solución

Agregue una referencia a System.DirectoryServices.dll

using (var forest = Forest.GetCurrentForest())
{
    foreach (Domain domain in forest.Domains)
    {
        Debug.WriteLine(domain.Name);
        domain.Dispose();
    }
}

Otros consejos

Echa un vistazo a Este artículo de CodePoject. Encontrará un fragmento de código simple para enumerar los dominios en el bosque actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top