Bonsoir,
j'ai finalement trouvé comme un grand :
ci dessous le code ultime pour explorer une base OPEN LDAP (filtre ldap, lecture des simple value, et des multivalues)
ATTENTION !
il s'agit d'un patchwork de code issue du net et un peu de codage personnel , du coup les variables n'ont pas forcement des noms représentatifs
Code :
- Set dso = GetObject("LDAP:" ) 'for accessing via LDAP
- Set ado = CreateObject("ADODB.Connection" ) 'creation of the ADO connection
- ado.Provider = "ADSDSOObject"
- ado.Properties("User ID" ) = "cn=comptadmin,dc=mondomaine,dc=fr"
- ado.Properties("Password" ) = "motdepasse"
- ado.Properties("Encrypt Password" ) = False
- ado.Open "EX55-Anon-Search" 'this is a arbitrarily chosen name
- 'replace the own server name here
- filterStr = "(&(objectClass=inetOrgPerson))"
- Set cmo = CreateObject("ADODB.Command" ) 'Creation of the ADO connection
- cmo.ActiveConnection = ado
- cmo.CommandText = "<LDAP://monserveur/ou=people,dc=mondomaine,dc=fr>;"& filterStr & "sn,givenName;subtree"
- Set objRS = cmo.Execute 'processing the search
- Do Until objRS.EOF
- nom=champ("sn" )
- prenom=champ("givenName" )
- wscript.echo nom+" "+prenom
- objRS.MoveNext
- Loop
- Function champ(strchmp)
- result = ""
- element=""
- If Not (IsNull(objRS.Fields(strchmp).Value)) then
- if (IsArray(objRS.Fields(strchmp).Value)) then
- For each element in objRS.Fields(strchmp).Value
- if (result <> "" ) then
- result = result+" | "+element
- else
- result=element
- end if
- Next
- else
- result=objRS.Fields(strchmp).Value
- end if
- End If
- champ=result
- End Function
|
Message édité par exmachina le 23-09-2015 à 21:01:02