2009-06-09 81 views
3

ADOは、LDAPサーバーにバインドされている場合、ADsPathおよびName以外の属性にアクセスできますか?以下は VBscript/ADOを使用したLDAPサーバーへのアクセス

私はと結合し、インターネット上のLDAPサーバーを照会するために使用するコードです:上記のコードで検索ベースを割り当てるには、「O = xxxxxxの大学はどうすればよい。また

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 

と、c = US "?

答えて

3

How To Use ADO to Access Objects Through an ADSI LDAP Providerを参照してください。

接続オブジェクトExecuteメソッドの CommandTextを(最初のオブジェクト)は、4つの要素 次の形式で、セミコロンで区切ら成るLDAP クエリである:

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

adsidn クエリの開始点の識別名である (DN)が012であるADsPath形式で表されている"/"区切り記号と左側の 名前空間のルート。 X.500スタイルの属性名 を使用することもできます。相対形式では、コンマで区切られた の名前と、右側の名前空間のルートは です。

ADsPathclass、および Exchangeサーバーのすべての 受信者コンテナ内のすべてのオブジェクトのcn 属性を返すには、あなたが(URL形式)のCommandText次 を使用することができます。

LDAP:; (objectClassの= *); ADsPathは、オブジェクトクラス、CN;サブツリー

は、すべて一緒にそれを置くために

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 
関連する問題