3 votes

Accès au serveur LDAP via VBscript/ADO

ADO peut-il accéder à des attributs autres que ADsPath et Name lorsqu'il est lié à un serveur LDAP ?

Voici le code que j'utilise pour me connecter à un serveur LDAP sur Internet et l'interroger :

Set ado = CreateObject("ADODB.Connection")                     
ado.Provider = "ADSDSOObject"
ado.Properties("User ID") = ""                                
ado.Properties("Password") = ""
ado.Properties("Encrypt Password") = False
ado.Open "NameSearch"                                     

serverName = "xxxxxx.xxxx.xxx"                           
filterStr = "(objectClass=*)"     

Set Ol= ado.Execute("<LDAP://" & serverName & ">;" & filterStr & ";ADsPath;SubTree")

While Not Ol
    WScript.Echo Ol.Fields(0).value
    Ol.MoveNext                                        
Wend

De plus, comment assigner la base de recherche dans le code ci-dessus à "o= xxxxxx University;c=US" ?

3voto

Eugene Yokota Points 43213

Ver Comment utiliser ADO pour accéder à des objets via un fournisseur LDAP ADSI .

La méthode Execute de l'objet de connexion CommandText (premier objet) est une requête LDAP composée de quatre éléments séparés par des points-virgules, dans le format suivant :

<LDAP://server/adsidn>;ldapfilter;attributescsv;scope

donde adsidn est le nom distingué (DN) du point de départ de votre requête exprimée au format ADsPath avec séparateurs "/" et la racine de l'espace de noms à gauche. Vous pouvez également utiliser un format de nom attribué de style X.500 avec les noms relatifs distingués relatifs séparés par des virgules et la racine de l'espace de nom à droite.

Pour retourner le ADsPath , class y cn attributs de tous les objets dans tous les conteneurs de destinataires dans un serveur Exchange, vous pouvez utiliser les texte de commande suivant (au format URL) :

LDAP: ; (objectClass=*);ADsPath,objectClass,cn;subtree

Pour mettre tout ça ensemble,

  Dim conn As ADODB.Connection
  Dim rs As ADODB.Recordset

  Set conn = New ADODB.Connection
  conn.Provider = "ADSDSOObject"
  conn.Open "ADs Provider"

  Set rs = conn.Execute( _ 
        "<LDAP://server/o=organization/o=xxxxxx University/c=US>;" _
        & "(objectClass=*);ADsPath,objectClass,cn;subtree")

  While Not rs.EOF
     Debug.Print rs.Fields(0).Value, rs.Fields(1).Value, _
           rs.Fields(2).Value
     rs.MoveNext
  Wend

  conn.Close

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X