<%@ Language=VBScript %> KYO'S ROOM 【ADSI】


LDAP プロバイダを使用したユーザー情報の取得

ユーザー名とドメイン名、またはコンピュータ名を入れると、LDAP プロバイダで取得できる ADSI オブジェクト、IADsUser オブジェクトの一覧を表示することができます。コンピュータ名を入れた場合、そのコンピュータのローカルユーザーを表示します。

ユーザーの ADSPath を入力してください。

ex) CN=kyo, CN=Users,DC=kyodom,DC=com

ドメイン名を入力してください。
注:Windows NT クライアントを使用している場合は、DC のコンピュータ名を入れてください。ドメイン名は無効です。(参照)

ex) kyodomdc

 

スクリプト解説

上記サンプル内で使用しているスクリプトの一部を以下に解説します。

 

on error resume next
dname = Request.Form("domainname")
uname = Request.Form("username") 

' エラーが出たときのためのトラップ
' ASP を使用した情報の取得
 
Dim UserObj
if uname <> "" and dname <> "" then
  Set UserObj = GetObject("LDAP://" & dname & "/" & uname)
end if
' LDAP を使用して User オブジェクトを取得。上記例の場合
' LDAP://kyodom/CN=kyo,CN=Users,DC=kyodom,DC=com
' を検索している
 :
 :
Response.Write(UserObj.FullName) ' 取得した User オブジェクトからフルネームを取得

 

基本的に WinNT プロバイダと違いはありません。GetObject を使用して LDAP プロバイダを使用した ADsPath の構文を知っていれば大丈夫です。

CN でユーザーを指定するときの名前は、ログオン名でなく、フルネームです。結構勘違いしやすい点です。気をつけてください。

参考資料

Mapping between IADsUser Properties and Active Directory Properties
http://msdn.microsoft.com/library/psdk/adsi/ds2pldap_3703.htm

User Creation with the ADSI LDAP Provider
http://msdn.microsoft.com/library/psdk/adsi/ds2pldap_54j6.htm

Modifying User Properties
http://msdn.microsoft.com/library/psdk/adsi/adsiscript_66ur.htm

ADS_USER_FLAG_ENUM
http://msdn.microsoft.com/library/psdk/adsi/ds2_enum_ret_94j1.htm