2012-03-27 14 views
37

Ho bisogno di un filtro di ricerca per visualizzare gli utenti di un gruppo specifico.Query LDAP per elencare tutti gli utenti di un determinato gruppo

ho provato la seguente:

(& 
    (objectCategory=user) 
    (memberOf=MyCustomGroup) 
) 

e questo:

(& 
    (objectCategory=user) 
    (memberOf=cn=SingleSignOn,ou=Groups,dc=tis,dc=eg,dc=ddd,D‌​C=com) 
) 

ma non ha ottenuto nulla, ti prego, aiutami correggerlo.

risposta

55

memberOf (in ANNUNCIO) è memorizzato come un elenco di DistinguishedNames. Il filtro ha bisogno di essere qualcosa di simile:

(&(objectCategory=user)(memberOf=cn=MyCustomGroup,ou=ouOfGroup,dc=subdomain,dc=domain,dc=com)) 

Se non avete ancora il nome distinto, è possibile cercare con:

(&(objectCategory=group)(cn=myCustomGroup)) 

e restituire l'attributo distinguishedName. Il caso può importare.

+1

cosa è ou = ouOfGroup? –

+6

In genere in Active Directory è disponibile un numero di unità organizzative che contengono la struttura. L'OU radice predefinita per i gruppi è Gruppi. È probabile che cn = MyCustomGroup, ou = Groups, dc = subdomain, dc = domain, dc = com funzioni per te. Se non lo consiglierei, esegui una ricerca LDAP per il tuo gruppo (& (objectCategory = group) (cn = MyCustomGroup)) e includi l'attributo distinguishedName nel set di risultati. Questo ti dirà esattamente quale stringa usare nella tua altra query – Kodra

+0

ho fatto quello che hai detto, ma non ho ottenuto risultati utilizzando il seguente: (& (objectCategory = user) (memberOf = cn = SingleSignOn, ou = Groups, dc = tis, dc = eg, dc = ddd, DC = com)) –

9

Per gli utenti di Active Directory, un modo alternativo per farlo sarebbe - presupponendo che tutti i gruppi siano memorizzati in OU=Groups,DC=CorpDir,DC=QA,DC=CorpName - per utilizzare la query (&(objectCategory=group)(CN=GroupCN)). Questo funzionerà bene per tutti i gruppi con meno di 1500 membri. Se si desidera elencare tutti i membri di un gruppo AD di grandi dimensioni, la stessa query funzionerà, ma sarà necessario utilizzare ranged retrieval per recuperare tutti i membri, 1500 record alla volta.

La chiave per eseguire recuperi a distanza è specificare l'intervallo negli attributi utilizzando questa sintassi: attributo , intervallo = basso-alto. Quindi, per recuperare tutti i membri di un gruppo AD con 3000 membri, eseguire prima la query sopra per richiedere l'attributo member;range=0-1499 da restituire, quindi per l'attributo member;range=1500-2999.

+0

Non dimenticare di specificare '(CN = GroupCN)'. Ho provato a richiedere tutti i gruppi e non ha funzionato fino a quando non ho specificato questo. Inoltre puoi usare l'asterisco quando specifichi l'intervallo: 'membro; intervallo = 1500- *' - funziona anche bene. – Stalinko

Problemi correlati