- - PR -
アクティブディレクトリの情報を取得したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 コンポーネントを作成できません。」 | ||||
|
投稿日時: 2006-06-22 10:39
VB.NET でしょう。
DirectoryEntry クラス (System.DirectoryServices) DirectorySearcher クラス (System.DirectoryServices) | ||||
|
投稿日時: 2006-06-22 11:04
こんにちは。ueです。
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-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-22 16:21
すいません。
今、エラーを解決しました。 resultData.GetDirectoryEntry().Properties("title").Value を使用したら、表示されました。 ユーザログオン名のプロパティー名を今探しています。 |