2009-02-08 14 views
7

Sto utilizzando il seguente codice per ottenere i membri di un gruppo sul mio dominio:"Domain Users" gruppo è vuoto quando uso DirectoryServices "membro" proprietà

Dim de As New DirectoryEntry("LDAP://" & GroupDN) 

    For Each user As String In CType(de.Properties("member"), IEnumerable) 

      GroupCollection.Add(Username, Username) 

    Next 

Il mio problema è che quando DNGruppo (il nome distinto del gruppo) è "CN = Domain Users, CN = Users, DC = Mydomain, DC = local", il For ... Ogni ciclo non viene eseguito e quando controllo manualmente l'istruzione Properties, è ottenuto un conteggio pari a zero. Questo sembra funzionare per ogni altro gruppo nel mio dominio, ma il gruppo "Domain Users" dovrebbe contenere tutti e sembra che non contenga nessuno.

Ho controllato e il gruppo elenca tutti correttamente nei miei strumenti di Windows AD. C'è qualcosa di ovvio che mi manchi qui? Da un lato, c'è un modo migliore per ottenere tutti i membri di un gruppo?

risposta

8

A meno che non venga modificato l'ID del gruppo principale di un utente, l'utente non è memorizzato nell'attributo membro del gruppo Domain Users, piuttosto utilizza il fatto che l'ID del gruppo principale è impostato sul Domain Users RID per determinare l'appartenenza in Domain Users. Il caso normale è che l'attributo utente Domain Users è vuoto; richiederebbe di apportare alcune modifiche all'implementazione predefinita di Active Directory affinché ciò non avvenga.

Il gruppo Domain Users utilizza un meccanismo "calcolata" sulla base del "gruppo primario ID" dell'utente per determinare l'appartenenza e non tipicamente memorizza membri come attributi multivalore collegate. Se il gruppo principale dell'utente viene modificato, l'appartenenza al gruppo degli utenti di dominio viene scritta nell'attributo collegato al gruppo e non viene calcolato più a lungo il numero . Questo è stato vero per Windows 2000 e non è cambiato per Windows Server 2003.

Reference

+0

Interessante - ho appena controllato in adsiedit.msc, e sembra che tu abbia ragione - nessuno degli utenti avere "Utenti dominio" elencati nel loro attributo memberof. Se questo è l'unico gruppo in cui ciò accade, posso conviverci - ho solo capito che era strano. – SqlRyan

+0

Grazie per questo, ho appena scritto un metodo "ottieni tutti gli utenti di un gruppo e tutti i suoi sottogruppi" e indipendentemente da ciò che ho fatto non sono riuscito a ottenere alcun utente per "Utenti dominio" ... mi ha risparmiato ore di debugging! –

Problemi correlati