Après plusieures tentatives pour afficher dans une comboBox la liste des utilisateurs présents dans une OU d'Active Directory, je n'y arrive toujours pas.
Je vous mets ici le fonction que j'ai faite au début du script (sous visual studio 2005)
Et le code de ma comboBox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Public Function getUsersOU(ByVal monCheminLdapRecherche As String, _ ByVal monUsername As String, _ ByVal monpassword As String) As ArrayList ' ArrayList qui va contenir le résultat retourné par la recherche Dim maListeUsers As New ArrayList Try ' Instanciation d'un objet DirectorySearcher ' Définition de l'emplacement de recherche Dim monEmplacementRecherche As New DirectoryEntry("LDAP://" & _ monCheminLdapRecherche, monUsername, monpassword, AuthenticationTypes.Secure) Dim maRecherche As New DirectorySearcher(monEmplacementRecherche) ' dureeMax initisalisée à 25 secondes Dim dureeMax As New TimeSpan(0, 0, 25) ' Emplacement où la recherche doit être effectuée ' dans la hiérarchie Active Directory maRecherche.SearchRoot = monEmplacementRecherche ' Définition du Scope de la recherche, ici le conteneur ' seulement et tous ses "sous conteneur" maRecherche.SearchScope = SearchScope.Subtree ' Filtre uniquement les objets de type "user" maRecherche.Filter = "(objectClass=user)" ' Détermination de la propriété à récupérer lors de la recherche maRecherche.PropertiesToLoad.Add("sAMAccountName") ' Durée maximum de la recherche maRecherche.ServerTimeLimit = dureeMax ' Fixe le nombre maximum d'objets retournés maRecherche.SizeLimit = 1500 Dim unUtilisateur As DirectoryServices.SearchResult ' Récupération du 'sAMAccountName' des utilisateurs récupérés For Each unUtilisateur In maRecherche.FindAll() maListeUsers.Add(unUtilisateur.GetDirectoryEntry.Properties.Item("sAMAccountName").Value.ToString) Next monEmplacementRecherche.Close() Catch ex As Exception MessageBox.Show(ex.Message) End Try Return maListeUsers End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub CbBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CbBox2.SelectedIndexChanged CbBox2.DroppedDown = True Dim listeUserOU As ArrayList = getUsersOU("OU=Utilisateurs,DC=societe,DC=fr", "login", "motdepasse") For Each nom As String In listeUserOU CbBox2.Items.Add(nom) Next End Sub
Il n'y a aucune erreur de générée par contre il n'y a rien dans la comboBox. Vu que je n'ai pas les conditions optimals pour réaliser ces tests, il se peut que cela vienne du login et mot de passe du compte ayant les droits ???????
Partager