2010-11-10 59 views
2

J'ai besoin d'itérer les membres d'un groupe en utilisant les classes System.DirectoryServices.Itérer les membres d'un grand groupe dans le répertoire actif

Le problème que je vois est qu'après avoir obtenu l'entrée DirectoryEntry pour le groupe, la propriété «members» contient seulement 1500 entrées. En réalité, le groupe a plus de 4000.

Y at-il un paramètre qui indique aux classes DirectoryServices de ne pas récupérer plus de 1500 membres de groupe?

+0

Ce message sur MSDN peut être utile: http://support.microsoft.com/default.aspx?scid=kb;en-us;839424 –

Répondre

3

Si vous le pouvez, essayez d'utiliser l'espace de noms System.DirectoryServices.AccountManagement à partir de .NET 3.5. Je n'ai pas un groupe assez grand que pour essayer - mais vous devriez être en mesure d'obtenir ces membres:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 

GroupPrincipal group = GroupPrincipal.FindByIdentity("name of the group"); 

if(group != null) 
{ 
    foreach(Principal p in group.Members) 
    { 
     // do something 
    } 
} 

Vous pouvez en savoir plus sur l'espace de noms S.DS.AM et ses nouvelles capacités à MSDN Magazine: Managing Directory Security Principals in the .NET Framework 3.5