Aide SVP - VBA & Manipulation LDAP

Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006 - 29 juin 2005 à 17:27
Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006 - 30 juin 2005 à 16:10
Bonsoir à tous,


Alors voilà j'ai un annuaire LDAP dans lequel je veux extraire des informations d'utilisateurs qui ne possèdent qu'une certaine valeur pour une certaine propriété.


J'ai trouvé ce code :


Public Function chercheruser()


Dim entry As New System.DirectoryServices.DirectoryEntry("[ldap://OU=mon_OU1,OU=User,OU=Accounts,DC=mon_domaine1,DC=mon_domaine2,DC=com/ LDAP://OU=mon_OU1,OU=User,OU=Accounts,DC=mon_domaine1,DC=mon_domaine2,DC=com]")
Dim mySearcher As New System.DirectoryServices.DirectorySearcher(entry)
Dim result As System.DirectoryServices.SearchResult


mySearcher.Filter = ("(cn='j*')")


For Each result In mySearcher.FindAll()


'Traitement


Next


End Function


Problème : c'est du .NET et j'aimerai faire ça dans du VBA. Pourriez vous m'aider SVP.


J'ai un truc qui marche du style :


ADSIPath = "[ldap://OU=mon_OU1,OU=User,OU=Accounts,DC=mon_domaine1,DC=mon_domaine2,DC=com/ LDAP://OU=mon_OU1,OU=User,OU=Accounts,DC=mon_domaine1,DC=mon_domaine2,DC=com]"


Set objOU = GetObject(ADSIPath)


For Each objOUMember In objOU


If (objOUMember.cn = "j*")Then


'Traitement


End If


Next


Mais le problème avec cette solution c'est que je teste ma condition dans la boucle et comme j'ai 4000 utilisateurs à cet endroit là et beh ça met en moyenne 7 min !
En gros : COMMENT PUIS-JE FAIRE POUR GAGNER DU TEMPS ? Je crois que c'est possible avec un filtre, mais comment ?


SVP, aidez moi. Merci.

5 réponses

cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
29 juin 2005 à 18:41
Tu n'as pas de possbilité avec "objOU.Filter = Array(?????)"



0
Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006
30 juin 2005 à 08:41
Oui mais comment manipule-t-on array pour faire le filtre ???

J'ai déjà vu des trucs du style : objOU.Filter = Array("user")
mais ça c'est pas pour une propriété d'un utilisateur c'est pour un utilisateur tout court.
Je veux faire mon filtre sur une propriété et je ne sais pas faire.

En fait pour résumer je descends correctement dans la bonne unité d'organisation que je veux grâce au chemin LDAP mais le problème est que dans cette OU il y a 4000 utilisateurs et il y en a que 26 qui m'intéresse pour mon extraction !!!
Jusqu'à maintenant je bouclais sur les 4000 et je regardais si pour chacun la condition était remplie : seulement ça, ça met environ 10 min. Je voudrai pouvoir optimiser l'extraction avec un filtre.

As-tu une chtite idée ?
0
Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006
30 juin 2005 à 09:47
Pas d'idée ? C'est faisable ce truc non ?
0
Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006
30 juin 2005 à 12:47
je cherche toujours...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ant8386 Messages postés 36 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 16 mai 2006
30 juin 2005 à 16:10
Dites moi si c possible au moins SVP
C'est très important !
0
Rejoignez-nous