- - PR -
アクティブディレクトリの情報を取得したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 *ソース***** 終わり エラーメッセージ:ディレクトリのプロパティがキャッシュに見つかりません。 どのように、修正すればよろしいでしょうか? | ||||
|
投稿日時: 2006-06-21 16:05
こんにちは。
WinNTプロバイダでは LDAP のプロパティは取得出来ないと思います。 LDAPプロバイダを使用してみてください。 TechNet のスクリプトセンターにコード例があります。 ユーザー アカウントの [組織] ページ情報の一覧表示 | ||||
|
投稿日時: 2006-06-21 18:20
サンプルをみました、ありがとうございました。
後、調べてわからない点がありました。 LDAPプロバイダにアクセスする際の、cnやouやdcに何を記述したら良いかがわかりませんでした。 Set objUser = GetObject _ ("LDAP://cn=XXXX,ou=XXXX,dc=XXXX,dc=XXX") ご存知の方はいらっしゃいますか? よろしくお願いします。 | ||||
|
投稿日時: 2006-06-21 19:03
ueです。
cn や ou や dc は DN(distinguishedName) を構成する要素です。 例えばこんな感じになります。 LDAP://cn=ユーザー名,ou=OU名,dc=example,dc=com ちょっとした解説が見つかったのでご参照ください。 リファレンス Windows 2000 アプリケーション開発ガイド | ||||
|
投稿日時: 2006-06-21 19:12
ueさん
要素の説明をありがとうございました。 さっそく、閲覧をします。 余談になるのですが、Sqlサーバの設定に詳しくないのですが、 権限などの設定にも気をつけないといけないのでしょうか? | ||||
|
投稿日時: 2006-06-21 19:43
ueです。
SQL Server のセキュリティにはぜひ気をつけてください。 マクロソフトが配布している SQL Server 2000 自習書シリーズ に権限に関する自習書があります。 リンク先の 管理編 No.9 セキュリティ設定 です。 その他の自習書も役立つと思います。 [ メッセージ編集済み 編集者: ue 編集日時 2006-06-21 19:47 ] | ||||
|
投稿日時: 2006-06-21 23:17
もし2003Serverをお使いでしたら、dsget userコマンドを使ったほうが簡単かもしれませんね。
| ||||
|
投稿日時: 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.認証はどのようにすれば宜しいのでしょうか? もしくは、一連の操作のヒントを教えて頂けますか? すいませんが、お願いします。 |