begin process at 2010 02 10 06:03:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

[Active Directory] méthode FindAll(), d'un objet de type DirectorySearcher, trop limitée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Active Directory] méthode FindAll(), d'un objet de type DirectorySearcher, trop limitée

lundi 15 juin 2009 à 10:59:59 | [Active Directory] méthode FindAll(), d'un objet de type DirectorySearcher, trop limitée

rastamath69

Bonjour à tous,

Je travaille à l'heure actuelle sur une base Active Directory contenant un peu plus de 30000 utilisateurs.
Je dois arriver à parcourir tous ces utilisateurs afin de leur faire subir des modifications qui peuvent être différentes pour chacun d'entre eux suivant divers critères.

Mon soucis, est que lorsque j'utilise la méthode FindAll() de mon objet DirectorySearcher, la collection se limite à 7000 objets et pas un de plus... J'ai essayé de regarder du coté des différents paramètres de l'objet pour mieux contrôler sa taille comme l'attribut  ".SizeLimit", mais cela ne change rien...

Voici un résumé de mon code:

DirectorySearcher searcher = new DirectorySearcher(Ldap);
Int32 total = 0;
searcher.SizeLimit = 40000;
SearchResultCollection collection = searcher.FindAll();
total = collection.Count;


"total" est toujours égal à 7000.

Pour information si je fais un filtre de ce genre et que j'additionne les résultats :

            List<String> MaListe = new List<String>();
            MaListe.Add("A");
            ... //MaListe contient toutes les lettres de l'alphabet
            MaListe.Add("Z");
           
            foreach(String lettre in MaListe)
            {
                searcher.Filter = "(&(objectCategory=user)(SAMAccountName=" + lettre + "*))";
                SearchResultCollection collection = searcher.FindAll();

                total += collection.Count;
            }

Dans ce cas, "total" contient bien les 30000 utilisateurs. (le problème de cette solution est que je passe outre tous les login spécifiques qui commencent par des #, !, ...)

Quelqu'un aurait-il la solution?

Merci,

Rastamath69, plus on travaille , plus on a des problèmes, donc plus on a de chances d'en résoudre! [8D]
mardi 16 juin 2009 à 08:48:50 | Re : [Active Directory] méthode FindAll(), d'un objet de type DirectorySearcher, trop limitée

rastamath69

Bonjour à tous!

Visiblement, je ne suis pas le seul à caler sur le sujet , ça me rassure!

Pour information, j'ai trouvé le pourquoi de la chose, mais pas la solution!
En fait le serveur Active Directory a visiblement dans son paramétrage une valeur qui lui indique le nombre maximum de valeurs a renvoyer (cela sert à éviter qu'il ne s'écroule quand il y a vraiement beaucoup de requêtes qui se font sur lui). Dans mon cas cette valeur est fixée à 7000...

Mais mon problème reste entier...  Comment remonter tous les users de cette base en paquets de maximum 7000??
L'idée de faire un filtre spécifique par caractère ASCII ne m'enchante guère (c'est pas super élégant)... Mais ai-je le choix?

Si quelqu'un a une astuce, je suis preneur!!

merci!

Rastamath69, plus on travaille , plus on a des problèmes, donc plus on a de chances d'en résoudre! [8D]
lundi 9 novembre 2009 à 16:42:24 | Re : [Active Directory] méthode FindAll(), d'un objet de type DirectorySearcher, trop limitée

rastamath69


I'm back!

Simple remarque à ajouter à cette discussion, à savoir que j'ai trouvé ma solution il y a quelques jours, sans pour autant faire une quelconque demande à l'administrateur Active Directory.

J'étais sur la bonne piste 5 mois auparavant, mais passer le paramètre
Code :

searcher.SizeLimit = 40000;

ne suffit pas, il fallait également indiquer le paramètre:
Code :

searcher.PageSize = 40000;

On pourra trouver plus de détails ici:
http://msdn.microsoft.com/fr-fr/library/system.directoryservices.directorysearcher.sizelimit.aspx

Voila, avec ça plus de souci! Je peux enfin faire des requêtes LDAP simple sans avoir besoin de filtre!

J'espère que cela pourra servir à d'autres personnes!

Rastamath69, plus on travaille , plus on a des problèmes, donc plus on a de chances d'en résoudre!


Cette discussion est classée dans : collection, total, searcher, directorysearcher, findall


Répondre à ce message

Sujets en rapport avec ce message

La référence d'objet n'est pas définie à une instance d'un objet. [ par kinderman81 ] Salut,Je souhaite ajouter des objets "Concessionnaire" dans un vecteur ArrayList (qui est la liste des concessionnaires): Celui-ci est l'objet Collect [C#] Accès au datagrid [ par Ced2k ] Bounjour,J'ai créé un DataGrid a partir d'un DataTable en mémoire.Mon DataGrid contient 4 colonnes. Le but est que la 4ème colonne prenne la valeur de Collection converter - Help [ par bucherb ] Hello la compagnie.Voila, j'ai un control self-made qui contient une collection, avec un CollectionConverter afin que le designer affiche au développe appeler les methodes d'une classe et remplir une collection en C# [ par chris81 ] j'ai creer une classe de carton et j'aimerai savoir comment il faut faire pour appeler mes methodes qui sont a l'interieur. et j'aimerai aussi savoir Collection [ par jeanajaccio ] Salut à tous,Je vais essayer d'expliquer ma demande le + simplement possible : je code un composant dans lequel je souhaite implémenter une collection Procédure import dans une dll avec visu de progression sur une progressbar [ par Arthenius ] Hello,j'ai un petit souci...j'ai fait une dll d'importation (je sais y a DTS pour ca...mais pour des raisons techniques c'est ma dll que je dois utili Collection de PictureBox [ par tfrancais ] Ca doit être une question de débutant mais comment fait-on pour créer une collection de PictureBox où chaque élèment possède un index.Est-ce qu'il exi C# et Access Update [ par Darkrudandei ] Bonjour   Je travail avec une base de donnée Access et ADO.net.     Je lit une base de donné dans un datagrid. Ça aucune probleme.  Là où j'ai un prob Probleme de remplissage d'une DataGrid [ par oxboz ] Salut, Voila j'explique mon cas. J'ai une DataGrid qui pourra contenir de nombreuses lignes. (+ 50000) J'ai pour chaque ligne un objet avec un colle [.NET] [C#] LDAP SunOne error [ par Meuledor ] Bonjour. J'ai une erreur qui me bloque alors que j'essais d'authentifier des users via ldap sur un serveur Directory SunOne (version inconnue) : <sp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales