Bonjour
Je programme en vb6
J'essaie de lire dans le Active Directory et je n'y arrive pas.
J'ai tout d'abord trouver ce code quelque part sur le net qui permet d'aller lire les informations d'un user particulier :
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
| Public Function UserInfo(LoginName As String) As String
'Déclaration des variables locales
Dim oRoot as IADs
Dim oDomain as IADs
Dim sDomain as String
Dim sBase as String
Dim sFilter as String
Dim sAttribs as String
Dim sDepth as String
Dim conn As New ADODB.Connection
Set oRoot = GetObject("LDAP://rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sBase = "<" & oDomain.ADsPath & ">"
sFilter = "(&(objectCategory=person)(objectClass=user)(name=" _
& LoginName & "))"
sAttribs = "adsPath"
sDepth = "subTree"
sQuery = sBase & ";" & sFilter & ";" & sAttribs & ";" & sDepth
conn.Open _
"Data Source=Active Directory Provider;Provider=ADsDSOObject"
Set rs = conn.Execute(sQuery)
If Not rs.EOF Then
Set user = GetObject(rs("adsPath"))
With user
sAns = "First Name: " & .FirstName & vbCrLf
........
End With
End If
UserInfo = sAns
End Function |
Je peux ensuite appeller la fonction ainsi
MsgBox UserInfo("administrator")
Comme ca, ça fonctionne très bien.
Cependant tout ce beau code permet de se connecter au dossier par defaut "user". Mais les usagers de ma compagnie sont dans le cn=macieuser
Je suis donc aller chercher le contenu de la variable sDomain et j'ai qu'elle était ceci :
sDomain = "dc=macie, dc=com"
Je me suis dis que j'allais simplement rajouter la clause "cn=macieuser" dans le string en asignant ainsi
sDomain = "cn=macieusers, dc=macie, dc=com"
mais ainsi, je recois le message d'erreur
Automation Error. There is no such object on the server.
Si j'essaie cet ordre
sDomain = "dc=macie, cn=macieusers, dc=com"
je recois ce message d'erreur
Automation error. A referral was returned from the server.
Est-ce que quelqu'un dans la salle sait comment changer le string du domain pour que je puisse aller lire dans le dossier "macieusers"?
Merci à l'avance 8)
Partager