Bonjour bonjour,
Pour permettre d'identifier les droits de l'utilisateur qui a ouvert le fichier xls, je récupère l'identifiant de l'utilisateur.
Ensuite, j'aimerai récupérer le(s) groupe(s) auquel il appartient, sur Active Directory, par l'intermédiaire d'une requête LDAP.
Le code que j'utilise est celui-ci :
Le code fonctionne, mais je ne récupère pas d'informations concernant le(s) groupe(s).
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 ' Parametrage du LDAP Dim objConnection As ADODB.Connection Dim objCommand As ADODB.Command Dim objRecordset As ADODB.Recordset Set objConnection = New ADODB.Connection Set objCommand = New ADODB.Command Set objRecordset = New ADODB.Recordset Const ADS_SCOPE_SUBTREE = 2 objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE ' Commande d'interrogation objCommand.CommandText = "SELECT * FROM 'LDAP://dc=domaine,dc=fr' WHERE objectCategory='User' And samAccountName = '" & login & "'" Set objRecordset = objCommand.Execute MsgBox Str(objRecordset.Fields.Count) objRecordset.MoveFirst For i = 0 To objRecordset.Fields.Count - 1 MsgBox objRecordset.Fields(i).Name MsgBox objRecordset.Fields(i).Value Next ' Cloture de la connexion objRecordset.Close Set objRecordset = Nothing Set objCommand = Nothing Set objConnection = Nothing
J'ai trouvé un autre code, mais en VB 2005, qui pourrait permettre de le récupérer :
Est-ce qu'il est possible de convertir ce code pour Excel ? Quelles références dois-je importer ?
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 Dim searcher As DirectorySearcher = Nothing Dim colEntry As New Collections.Generic.List(Of String) Try 'Objet de notre utilisateur de la hiérarchie Active Directory. searcher = New DirectorySearcher(New DirectoryEntry("LDAP://" & domain, username, password)) 'On va chercher ici un objet de type user et dont le nom d'ouverture de session = <username>. searcher.Filter = String.Concat("(&(objectClass=User) (sAMAccountName=", username, "))") 'Ne récupère que la propriété MemberOf. searcher.PropertiesToLoad.Add("MemberOf") 'Recherche et retourne la première entrée trouvée. Dim result As SearchResult = searcher.FindOne 'Parcours le contenu de la propriété MemberOf de notre entrée trouvée. For i As Integer = 0 To result.Properties("MemberOf").Count - 1 'Récupère la chaine LDAP. Dim sProp As String = result.Properties("MemberOf")(i) 'Extrait le nom du groupe de la chaine. colEntry.Add(sProp.Substring(3, sProp.IndexOf(",") - 3)) Next Catch ex As Exception exeption = ex Finally 'Libère les ressources. searcher.Dispose() End Try
Merci.
Partager