Estoy buscando poder obtener una lista de unidades organizativas actuales de Active Directory. He estado buscando algún código de ejemplo en línea por algún tiempo, pero parece que no puedo hacer que esto funcione.Adquiriendo la lista AD OU
string defaultNamingContext;
DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE");
defaultNamingContext = rootDSE.Properties["defaultNamingContext"].Value.ToString();
DirectorySearcher ouSearch = new DirectorySearcher(rootDSE, "(objectClass=organizationalUnit)",
null, SearchScope.Subtree);
MessageBox.Show(rootDSE.ToString());
try
{
SearchResultCollection collectedResult = ouSearch.FindAll();
foreach (SearchResult temp in collectedResult)
{
comboBox1.Items.Add(temp.Properties["name"][0]);
DirectoryEntry ou = temp.GetDirectoryEntry();
}
El error que consigo es No proveedor no admite la búsqueda y no se puede buscar LDAP: // RootDSE alguna idea? para cada uno de esos resultados de búsqueda devueltos Quiero agregarlos a un cuadro combinado. (no debería ser demasiado difícil)
He intentado buscar utilizando su sugerencia anterior, parece una muy buena idea, aunque tiene un novato que intenta implementarla. Cambié el valor predeterminado a 'dominio', que no pude ver si había algún problema, mi problema es ese dominio = System.DirectoryServices.DirectoryEntry, en lugar de LDAP: // ... aunque eso está en su propiedad Path. –
Solo pensé que agregaría para cualquiera que encuentre esto más tarde. Server 2003 R2 y versiones anteriores no * index * 'objectClass', sin embargo, 2008 y posteriores lo hacen. ¡No es un golpe en contra de la respuesta! Solo nueva información. Fuente: http://msdn.microsoft.com/en-us/library/ms675095(v=vs.85).aspx – klyd