VB connexion Active Directory/LDAP

Fermé
teteve Messages postés 123 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 23 février 2011 - 19 juil. 2010 à 11:52
teteve Messages postés 123 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 23 février 2011 - 19 juil. 2010 à 16:49
Bonjour,

Après une longue absence, je reprends la programmation en VB/VBA. Et forcément je reprends aussi les soucis/blocages. Je fais un script de gestion d'Active Directory et d'annuaire ADAM (annuaire LDAP complémentaire à AD). Pour faire des requêtes SQL dans l'AD, j'utilise ce script :
Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "ADs Provider"
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    objCommand.CommandText = "SELECT Name FROM 'LDAP://" & OUPATH & ", " & STRDOMAIN & "' WHERE objectclass = 'group' "
Set objRecordSet = objCommand.Execute
If objRecordSet.RecordCount = 0 Then
[...]
End if


Je dois maintenant faire la même requête sur l'annuaire ADAM (annuaire LDAP), en rajoutant des paramètres d'authentification (user = xxx, password = yyy).

J'ai donc "trouvé" ce code :
strUsername = "uid=usertoto,ou=people,o=genial"
strPassword = "mdptoto"
set adsNamespaceLDAP = GetObject("LDAP:")
set adsMyObject = adsNamespaceLDAP.OpenDSObject("LDAP://" & OUPATH & ", " & STRDOMAIN, strUsername, strPassword, 0)


Je veux dans la suite du code pouvoir exécuter des requêtes LDAP comme pour l'AD.
Ce qui, bien évidemment, ne fonctionne pas... :(

Si quelqu'un a donc une piste pour m'aiguiller...

Je cherche également, pour avancer dans mes recherches, quelle est "la bibliothèque" de référence pour une connexion LDAP (j'utilise l'explorateur d'objets de M$ Visual Basic Editor d'Excel pour programmer), afin de pouvoir parcourir les objets/méthodes/propriétés.

Et pour finir, je souhaiterai également discuter avec un programmeur un peu plus expérimenté, car n'ayant pas codé depuis longtemps, je code comme mes pieds. Je souhaiterai donc soumettre quelques bouts de code pour les "assainir"...

Merci d'avance :)
A voir également:

1 réponse

teteve Messages postés 123 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 23 février 2011 40
19 juil. 2010 à 16:49
Bon, je me réponds à moi-même...

Déjà, la librairie utilisée pour une connexion LDAP est "à priori" :
- Microsoft ActiveX Data Objects 2.8 Library
Et toujours "à priori", la connexion à l'annuaire ADAM fonctionne avec :
Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "ADs Provider, strUsername, strPassword"
Set objCommand = CreateObject("ADODB.Command")
Set objCommand.ActiveConnection = objConnection
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    objCommand.CommandText = "SELECT * FROM 'LDAP://OU=structure, dc=domaine, dc=fr' WHERE DistinguishedName= 'AAA' "
Set objRecordSet = objCommand.Execute
If objRecordSet.RecordCount = 0 Then
[...]
else
[...]
End if


Le seul souci (et non des moindres...), c'est que ma requête SQL me renvoie une erreur. J'ai donc un doute sur le fait qu'il essaye de se connecter sur un AD, la connexion s'établit, mais le serveur LDAP ne lui renvoie pas l'accès à la racine. (je ne sais pas si je suis très clair...)

Donc je cherche toujours une solution viable ;)
0