Connextion à un annuaire LDAP (VBA vers VBS) - VB/VBA/VBS - Programmation
MarshPosté le 16-08-2007 à 16:20:51
Bonjour,
Je cherche à convertir ce code VBA (surtout l'initialisation de la connextion ) qui fonctionne sous EXCEL, en VBS
Il s'agit de se connecter à un annuaire LDAP qui est different du LDAP d'active directory de notre société (l'annuaire LDAP est plus complet en fait)
nb : TOTO est le nom de la société
'Initialisation de la connection Set conn = New ADODB.Connection conn.Provider = "ADsDSOObject" conn.Open "ADs Provider" mystr = "cn,mail,telephonenumber,ou,l,sitecode" nbItems = UBound(Split(mystr, "," ))
For Each uid In liste Set RS = conn.Execute("<LDAP://annuaire.TOTO.com:389/o=TOTO/ou=users>;" & _ "(&(objectClass=TOTODominoUser)(uid=" & uid & " ));" & mystr) Sheets("feuil1" ).Activate
For x = 0 To nbItems Cells(li, 2 + x).Value = "'" & RS.fields(x).Value If RS.fields(x) = Null Then Cells(li, 2 + x).Value = "'" & RS.fields(x).Value(0) If Len(RS.fields(x).Value(1)) > Len(RS.fields(x).Value(0)) Then Cells(li, 2 + x).Value = "'" & RS.fields(x).Value(1) End If End If Next li = li + 1 Next
j'ai essayé ca (en vbs donc) mais j'ai une erreur : Dépassement de la limite de taille pour cette requête.
Dim ADSIPath, objOU, objOUMember,filtre ADSIPath = "LDAP://annuaire.TOTO.com:389/o=TOTO/ou=users" Set objOU = GetObject(ADSIPath) For Each objOUMember in objOU wscript.echo objOUMember.cn wscript.sleep(100) Next wscript.echo "Export terminé !"
Une connection 'classique' via ' Set objRDSE = GetObject("LDAP:" ) '//rootDSE'' ne m'interresse pas car cela pointe sur notre AD et non pas sur l'annuaire
Marsh Posté le 16-08-2007 à 16:20:51
Bonjour,
Je cherche à convertir ce code VBA (surtout l'initialisation de la connextion ) qui fonctionne sous EXCEL, en VBS
Il s'agit de se connecter à un annuaire LDAP qui est different du LDAP d'active directory de notre société (l'annuaire LDAP est plus complet en fait)
nb : TOTO est le nom de la société
'Initialisation de la connection
Set conn = New ADODB.Connection
conn.Provider = "ADsDSOObject"
conn.Open "ADs Provider"
mystr = "cn,mail,telephonenumber,ou,l,sitecode"
nbItems = UBound(Split(mystr, "," ))
For Each uid In liste
Set RS = conn.Execute("<LDAP://annuaire.TOTO.com:389/o=TOTO/ou=users>;" & _
"(&(objectClass=TOTODominoUser)(uid=" & uid & " ));" & mystr)
Sheets("feuil1" ).Activate
For x = 0 To nbItems
Cells(li, 2 + x).Value = "'" & RS.fields(x).Value
If RS.fields(x) = Null Then
Cells(li, 2 + x).Value = "'" & RS.fields(x).Value(0)
If Len(RS.fields(x).Value(1)) > Len(RS.fields(x).Value(0)) Then
Cells(li, 2 + x).Value = "'" & RS.fields(x).Value(1)
End If
End If
Next
li = li + 1
Next
j'ai essayé ca (en vbs donc) mais j'ai une erreur : Dépassement de la limite de taille pour cette requête.
Dim ADSIPath, objOU, objOUMember,filtre
ADSIPath = "LDAP://annuaire.TOTO.com:389/o=TOTO/ou=users"
Set objOU = GetObject(ADSIPath)
For Each objOUMember in objOU
wscript.echo objOUMember.cn
wscript.sleep(100)
Next
wscript.echo "Export terminé !"
Une connection 'classique' via ' Set objRDSE = GetObject("LDAP:" ) '//rootDSE'' ne m'interresse pas car
cela pointe sur notre AD et non pas sur l'annuaire
Merci pour vos idées !