DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ADSIによる拡張クラスの属性取得について

  • 題名: ADSIによる拡張クラスの属性取得について
  • 著者: AKI
  • 日時: 2005/05/11 17:50:45
  • ID: 10760
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[クライアント、WIN2000 ADSI2.5 |サーバ UNIX]
分類:[VB6以前]

以前別の掲示板にこの記事があったのですが、回答がなく現在私も同じエラーで悩まされております。下記が、その当時の記事です。
まことに申しわけありませんが、ご教授いただけませんか。

よろしくお願いします。

-----------------------------------------------------------

はじめて投稿します。
ジョジョジョと申します。

皆さんのお知恵をお借りしたく、投稿させていただきました。
VBやLDAPに関して触り始めたばかりで
わかりにくいところもあるかもしれませんがよろしくおねがいします。

LDAP(iPlanet Directory Server 4.1)に格納されている属性値をADSIを利用して取得するプログラムを作成しています。LDAP上のオブジェクトクラスにはorganizationを継承した独自のクラスを用意しており、追加属性として文字列型(大小文字区別しない)を持っています。

 このオブジェクトクラスから属性値を取得するとき問題が発生ししました。追加属性の値をGetメソッド取得するとき、エラー「Active Directory のデータ型と、ネイティブ DS のデータ型を相互に変換することはできません」が返されて情報が取得できません。 ちなみに、既存属性のo(所属)などは取得可能です。

//////////////////////////////////////////////////////////

Dim objIADs As IADs
Dim objContainer As IADsContainer

'コンテナオブジェクトを取得
Set objContainer =  GetObjectLDAP://xxx.xxx.xxx.xxx:389/o=test.co.jp)

'フィルタをかけ独自オブジェクト"testObject"のみ取得
objContainer.Filter = Array("testObject")

For Each objIADs In objContainer

   '追加属性"OriginalAttribute"の値を取得

   On Error Resume Next
   string型変数 = CStr(objIADs.Get("OriginalAttribute")

If Err.Number <> 0 Then 'ここでエラー
     Debug.Print Err.Description
   End If    
'属性名が uid や mail, o など既存の属性であればエラーとならず取得可能。

Next

///////////////////////////////////////////////////////////

ネットでいろいろ調べたのですが原因がわからないため質問させていただきました。 なにかご存知のかたがいらっしゃればよろしくお願いします。

DOBON.NET | プログラミング道 | プログラミング掲示板