- PR -

アクティブディレクトリの情報を取得したい

投稿者投稿内容
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-22 10:31
追記、現在のPG

'********************************************************************
'アクティブディレクトリプロパティの取得
'引数 :氏名コード
'戻り値:True :存在する
' :False :存在しない
'********************************************************************
Private Function GetAcriveDirectory(ByVal StrSimeiCD As String) As Boolean
Dim objUser As ActiveDs.IADsUser
Try
objUser = GetObject _
("LDAP://cn=XXXX,ou=XXXX,dc=XXXX,dc=XXX,dc=XX,dc=XX")←ここでエラー

MsgBox("Title: " & objUser.Title)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function

※エラー内容「ActiveX コンポーネントを作成できません。」
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-06-22 10:39
VB.NET でしょう。

DirectoryEntry クラス (System.DirectoryServices)

DirectorySearcher クラス (System.DirectoryServices)
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-22 11:04
こんにちは。ueです。

引用:

1.接続と2.認証はどのようにすれば宜しいのでしょうか?
もしくは、一連の操作のヒントを教えて頂けますか?


Active Directory のオブジェクトの操作に関する権限は、そのコードを実行したアカウント次第だと思います。

ADSI は ADsDSOObject という名前で OLEDBプロバイダとしても提供されている ので、これを使えば VB.NET から 接続や認証を含めて ADO.NET を使って操作することができます。

あとは、System.DirectoryServices 名前空間 の利用も検討してみてください。
この場合、認証は DirectoryEntry クラスのコンストラクタ で行うことになります。

ADSI プロパティの呼び出し で ADSI のプロパティにアクセスできるので、表示名や会社名や役職を取得できるはずです。

Visual Basic 2005 コード例のクイック リスト にはその他の色々なコード例があります。

*追記
ちゃっぴさんに被りました。すみません。

[ メッセージ編集済み 編集者: ue 編集日時 2006-06-22 11:06 ]
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-22 15:49
何度もすいません。
意見を元に、ソースを記述しましたが、なぜか「title」を
取得しようとするとエラーになります。
「インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメータ名: index」

ソース ***
Dim entry As DirectoryEntry = _
New DirectoryEntry("LDAP://XXX/CN=XXX,OU=XXX,OU=XXX,DC=XXX,DC=jp")

Dim mySearcher As New DirectorySearcher(entry)
Dim result As SearchResultCollection = mySearcher.FindAll()
Dim resultData As SearchResult

mySearcher.PropertiesToLoad.Add("cn")
mySearcher.PropertiesToLoad.Add("title")
result = mySearcher.FindAll()

For Each resultData In result
MsgBox(resultData.Properties("cn")(0) & resultData.Properties("title")(0))
Next
ソース ***

申し訳ございませんが、間違いをご指摘お願いできますか?

[ メッセージ編集済み 編集者: 未記入 編集日時 2006-06-22 15:51 ]
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-22 16:21
すいません。
今、エラーを解決しました。

resultData.GetDirectoryEntry().Properties("title").Value
を使用したら、表示されました。

ユーザログオン名のプロパティー名を今探しています。

スキルアップ/キャリアアップ(JOB@IT)