En primer lugar, modificar el filtro de búsqueda sólo para buscar usuarios y no Contactos:
(&(objectCategory=person)(objectClass=user)(sAMAccountName=BTYNDALL))
Puede enumerar todos los dominios de un bosque mediante la conexión a la partición de configuración y enumerar todas las entradas en las particiones envase. Lo siento, no tengo ningún código C# en este momento, pero aquí hay un código de VBScript que he utilizado en el pasado:
Set objRootDSE = GetObject("LDAP://RootDSE")
AdComm.Properties("Sort on") = "name"
AdComm.CommandText = "<LDAP://cn=Partitions," & _
objRootDSE.Get("ConfigurationNamingContext") & ">;" & _
"(&(objectcategory=crossRef)(systemFlags=3));" & _
"name,nCName,dnsRoot;onelevel"
set AdRs = AdComm.Execute
Desde que se puede recuperar el nombre y dnsRoot de cada partición:
AdRs.MoveFirst
With AdRs
While Not .EOF
dnsRoot = .Fields("dnsRoot")
Set objOption = Document.createElement("OPTION")
objOption.Text = dnsRoot(0)
objOption.Value = "LDAP://" & dnsRoot(0) & "/" & .Fields("nCName").Value
Domain.Add(objOption)
.MoveNext
Wend
End With
Las afirmaciones 'With' y 'While' parecen espantosas. Creo que escribí esto hace mucho tiempo y no he necesitado actualizarlo ya que solo funcionó ... – Dscoduc
+1 y respuesta. Este es el tipo de pensamiento que estaba buscando. Gracias. – BuddyJoe
Gracias, me alegro de que ayudó ... – Dscoduc