2010-05-26 3 views
5

dispiace per essere un dolore uber persone, è tutto molto nuovo :(query LDAP per l'UO di

già avuto un sacco di aiuto su questo, ma non sembrano essere in grado di vedere il problema, sto cercando di popolare una casella combinata con un elenco di tutte le UO attuale, in seguito per inviare ogni macchina all'interno di quel OU un comando di spegnimento. (l'acquisizione dC lista OU & elenco Directory di OU di Active) erano la mia precedente. Q

 string defaultNamingContext; 
     //TODO 0 - Acquire and display the available OU's 
     DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE"); 
     defaultNamingContext = rootDSE.Properties["defaultNamingContext"].Value.ToString(); 
     DirectoryEntry entryToQuery = new DirectoryEntry ("LDAP://" + defaultNamingContext); 
     MessageBox.Show(entryToQuery.Path.ToString()); 

     DirectorySearcher ouSearch = new DirectorySearcher(entryToQuery.Path); 
     ouSearch.Filter = "(objectCatergory=organizationalUnit)"; 
     ouSearch.SearchScope = SearchScope.Subtree; 
     ouSearch.PropertiesToLoad.Add("name"); 

     SearchResultCollection allOUS = ouSearch.FindAll(); 

     foreach (SearchResult oneResult in allOUS) 
     { 
      //comboBox1.Items.Add(oneResult.ToString()); 
      comboBox1.Items.Add(oneResult.Properties["name"][0]); 
     } 

ho ho passato e fatto il debug di tutto quello che so, il ricercatore non sta raccogliendo alcun risultato, quindi perché non viene compilato nulla nella casella combinata.

+0

Ho appena provato ad aggiungere manualmente l'intero percorso LDAP entryToQuery = "LDAP: // OU = GTP, DC = GTP, DC = LOCAL" So che ci sono sicuramente OU di reparto qui sotto l'albero, ho sostituito la proprietà da caricare in ["distinguishedName"] per vedere se forse potrebbe p quella parte posteriore, anche se pensandoci su questo, non farà differenza. Super stumped a questo punto !!! –

+1

+1 Domanda interessante per problemi correlati AD. –

risposta

3

ho dovuto usare la non indicizzati objectClass piuttosto che Catergory.

Hai solo bisogno di scriverlo correttamente: objectCategory - non objectCate r cruento

(si dispone di una "r" troppo in là ..... :-)

+1

Sapevo che avrei dovuto andare a scuola più spesso: P –

2

Opere :) :)

Ho dovuto usare l'oggetto non indicizzatoClass piuttosto che Catergory.

La casella combinata è ora perfettamente popolata.

EDIT: { "(objectClass = organizationalUnit)" }

+1

+1 Per trovare da solo la risposta alla tua domanda e fornirla agli altri che potrebbero essere alla ricerca di questo. Durante l'utilizzo della classe DirectorySearcher, fornire sempre la proprietà "objectClass" nel membro della proprietà DirectorySearcher.Filter. –

+0

Grazie Will Perchè questo oggetto non funziona, qualcuno lo sa? –