- PR -

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

投稿者投稿内容
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-21 15:17
お世話になります。

VB.NETで、ActiveDirectoryを検索し、ActiveDirectoryにある全コンピュータの
表示名・会社名・役職を取得したいです。
ですが、下記のソースでエラーが発生します。

*ソース***** 開始

'コンピュータに接続
objIADs = GetObject("WinNT:")
objContainer = objIADs.OpenDSObject("WinNT://XXXXX", "UserName", "Password", 1)

objContainer.GetInfo()
objContainer.Filter = New Object() {"User"}

'アクティブディレクトリに入力した氏名コードが存在するかチェック
For Each objUser In objContainer
If objUser.Name = StrSimeiCD Then
strFullName = objUser.Get("FullName")
StrDepartment = objUser.Department ←※ここでエラー※

Return True
End If
Next


*ソース***** 終わり

 エラーメッセージ:ディレクトリのプロパティがキャッシュに見つかりません。

どのように、修正すればよろしいでしょうか?
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-21 16:05
こんにちは。

引用:

objIADs = GetObject("WinNT:")


WinNTプロバイダでは LDAP のプロパティは取得出来ないと思います。
LDAPプロバイダを使用してみてください。

TechNet のスクリプトセンターにコード例があります。
ユーザー アカウントの [組織] ページ情報の一覧表示
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-21 18:20
サンプルをみました、ありがとうございました。

後、調べてわからない点がありました。
LDAPプロバイダにアクセスする際の、cnやouやdcに何を記述したら良いかがわかりませんでした。

Set objUser = GetObject _
("LDAP://cn=XXXX,ou=XXXX,dc=XXXX,dc=XXX")

ご存知の方はいらっしゃいますか?
よろしくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-21 19:03
ueです。

引用:

LDAPプロバイダにアクセスする際の、cnやouやdcに何を記述したら良いかがわかりませんでした。


cn や ou や dc は DN(distinguishedName) を構成する要素です。
例えばこんな感じになります。
LDAP://cn=ユーザー名,ou=OU名,dc=example,dc=com

ちょっとした解説が見つかったのでご参照ください。
リファレンス Windows 2000 アプリケーション開発ガイド
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-21 19:12
ueさん

要素の説明をありがとうございました。

さっそく、閲覧をします。

余談になるのですが、Sqlサーバの設定に詳しくないのですが、
権限などの設定にも気をつけないといけないのでしょうか?
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-06-21 19:43
ueです。

SQL Server のセキュリティにはぜひ気をつけてください。

マクロソフトが配布している SQL Server 2000 自習書シリーズ に権限に関する自習書があります。
リンク先の 管理編 No.9 セキュリティ設定 です。

その他の自習書も役立つと思います。

[ メッセージ編集済み 編集者: ue 編集日時 2006-06-21 19:47 ]
minminnana
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 246
お住まい・勤務地: 盛岡
投稿日時: 2006-06-21 23:17
もし2003Serverをお使いでしたら、dsget userコマンドを使ったほうが簡単かもしれませんね。
ヤマッコ
常連さん
会議室デビュー日: 2006/06/21
投稿数: 31
投稿日時: 2006-06-22 10:00
minminnanaさん、ueさん

回答をありがとうございました。
何度も申し訳ないのですが、LDAPについてお教えください。

VB.NETでアクティブディレクトリの情報を取得する
場合は、下記の手順で宜しいのですか?

1.接続

2.認証

3.情報取得

ueさんに教えて頂いた「LDAP://cn=ユーザー名,ou=OU名,dc=example,dc=com 」
は、3の情報取得のみの処理なのでしょうか?
1.接続と2.認証はどのようにすれば宜しいのでしょうか?
もしくは、一連の操作のヒントを教えて頂けますか?

すいませんが、お願いします。

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