作成 2010.03.12
更新 2010.03.13
更新 2010.03.13
VBScript で OpenLDAP へ LDAPS で接続する
接続ポートは ADS_PLAIN_TEXT で TCP 389、ADS_USE_SSL で TCP 636 へ接続されます。
接続の高速化のために ADS_SERVER_BIND を指定し、問い合わせの高速化のために ADS_FAST_BIND と ADS_NO_REFERRAL_CHASING を指定しています。
なお、実行するコンピューターはドメインに参加している必要があります。
接続の高速化のために ADS_SERVER_BIND を指定し、問い合わせの高速化のために ADS_FAST_BIND と ADS_NO_REFERRAL_CHASING を指定しています。
なお、実行するコンピューターはドメインに参加している必要があります。
Option Explicit ' http://msdn.microsoft.com/en-us/library/aa772247.aspx Const ADS_PLAIN_TEXT = &H0 Const ADS_USE_SSL = &H2 Const ADS_FAST_BIND = &H20 Const ADS_SERVER_BIND = &H200 Const ADS_NO_REFERRAL_CHASING = &H400 Dim strPath, objLdap, strBind, strPassword, objMyObject Dim objConnection, objCommand, objRS Dim intADSIFlag strPath = "LDAP://ldap.upken.jp/DC=upken,DC=jp" strBind = "cn=proxy,dc=upken,dc=jp" strPassword = "bindpassword" ' for Windows Vista, 7 ' intADSIFlag = ADS_USE_SSL Or ADS_FAST_BIND Or ADS_SERVER_BIND Or ADS_NO_REFERRAL_CHASING ' for Windows XP intADSIFlag = ADS_USE_SSL Or ADS_FAST_BIND Or ADS_SERVER_BIND ' 特定のオブジェクトへ接続する Set objLdap = GetObject("LDAP:") ' Set objMyObject = objLdap.OpenDSObject(strPath, strAdmin, strPassword, ADS_PLAIN_TEXT) Set objMyObject = objLdap.OpenDSObject(strPath, strBind, strPassword, intADSIFlag) WScript.Echo objMyObject.Get("o") ' オブジェクトを検索する Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Properties("User ID") = strBind objConnection.Properties("Password") = strPassword objConnection.Properties("Encrypt Password") = True objConnection.Properties("ADSI Flag") = intADSIFlag objConnection.Open "ADs Provider" objCommand.ActiveConnection = objConnection objCommand.Properties("Page size") = 100 objCommand.CommandText = "<" & strPath & ">;(objectClass=*);ADsPath;subtree" Set objRS = objCommand.Execute Do Until objRS.EOF WScript.Echo objRS.Fields("ADsPath").Value objRS.MoveNext Loop WScript.Echo "end"