- PR -

Win2003ドメインに参加するNTクライアントからADSIが使用できない

1
投稿者投稿内容
mekkem
会議室デビュー日: 2004/07/27
投稿数: 5
投稿日時: 2004-07-27 10:05
はじめましてmekkemと申します。
現在Win2003でのサーバ構築作業を行っており、
以下の現象が発生し、自力での解決が難航しています。

<環境>
サーバOS:WindowsServer2003
クライアントOS:WindowsNT4.0Workstation SP6(a)
クライアントブラウザ:IE6.0SP1
クライアントスクリプトエンジン:ver5.6
クライアントには"DSClient"インストール済み

<現象および経緯>
上記の環境でクライアント側でスクリプトを実行したところ次のエラーが表示されました。
>D:\logon.vbs(19, 1) Microsoft VBScript 実行時エラー: ActiveX コンポーネントはオブジェクトを作成できません。: 'ADSystemInfo'
使用したスクリプトはログオンスクリプト用のもので、Win2003のヘルプ→ログオンスクリプトの作成に表示されていたサンプルを使用しております。なお、同じスクリプトがXP Proのクライアント上では正常に実行できています。

幸いOfficeがインストールしてあったため、VBEditorから参照設定で、Active DS Type Libraryを読み込み確認したところ"ADSystemInfo"は登録されていました。
次にレジストリを探したのですが、"ADSystemInfo"が登録されていませんでした。当然COMのIDも登録されていませんので、オブジェクトが生成できないようです。しかし"Active Directory Client Extension for WindowsNT(DSClient)"インストール時には何もエラーが出ませんでした。

そこで、DSClientのインストールが正常ではなかったのではと考え、調べたところ、Microsoft サポート技術情報 295168(http://support.microsoft.com/default.aspx?scid=kb;ja;295168)に、DSClientが存在すれば登録されるレジストリキーが記されているのですが、該当レジストリキーが今回の現象が発生したマシンにはありませんでした。
次に私がマシンのセットアップを失敗したのかと思い、もう1台NTクライアントマシンをセットアップし、DSClientをインストールしたのですが、やはり同じ結果になりました。

次に、ダウンロードした場所が悪いのかとも考えて、異なる場所からダウンロードしてきたのですが、全て同じサイズでした。

インストール方法も、ダブルクリックからやコマンドラインから行ったりしたのですが、どうしてもレジストリにキーが登録されません。

一応回避策も使用できるのですが、管理工数が増加してしまうため、なるべく避けたいのです。なにかしら情報をお持ちの方がおられましたら教えていただけないでしょうか。よろしくお願いいたします。
dellgate
大ベテラン
会議室デビュー日: 2004/02/20
投稿数: 198
投稿日時: 2004-07-27 10:50
dellgateです
はじめまして

DSClientに含まれるADSIはExtentionのようですので、
http://www.microsoft.com/downloads/details.aspx?familyid=f4bf2bf6-ed15-4789-9c63-e849d530a6df&displaylang=ja
からADSIをDLしてインストールしてみるといかがでしょう?

mekkem
会議室デビュー日: 2004/07/27
投稿数: 5
投稿日時: 2004-07-27 13:33
お返事ありがとうございます。

早速試してみたのですが、結果は同じでした。
どうやらMicrosoft サポート技術情報 418039 (http://support.microsoft.com/default.aspx?scid=kb;ja;418039)の原因の部分を見る限り、ADSI2.5にいくつかのコンポーネントを加えたADSIがDSClientに含まれているようです。

また何かお気づきの点がありましたらよろしくお願いします。

dellgate
大ベテラン
会議室デビュー日: 2004/02/20
投稿数: 198
投稿日時: 2004-07-27 15:44
dellgateです。

そうですか・・・お役に立てなくて残念です。
下記WEBサイトをみていてもしかすると、と思ったのですが違ったようです。

http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/chtml/chtml.cgi?key=spec_adsi
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2004-07-28 08:24
解決策ではないのですが...ご参考。

レジストリが存在しないことは問題ないようです。
Determining the version of ADSI that is installed on your computer

引用:

VBEditorから参照設定で、Active DS Type Libraryを読み込み確認したところ"ADSystemInfo"は登録されていました。



Type Libraryの登録は正常なようなので...登録関連とは別に、
ADSI関連のクラスがインスタンス化できない原因があるのでは?
# 想像ですが...
IADsContainerをインスタンス化できるか確認してみてはいかがでしょうか?
# ADSystemInfo以外は使用できる状況か?
mekkem
会議室デビュー日: 2004/07/27
投稿数: 5
投稿日時: 2004-07-28 11:35
お返事ありがとうございます。

私は"Active Directory Client Extension for Windows NT"をインストールしたのですが、教えて頂いたサイトと同様のファイル構成およびバージョンでした。
これでインストール時の実ファイルの構成は正しいことが確認できました。ありがとうございました。

問題は、おっしゃられたとおりdllに格納されているクラスをインスタンス化できないという点です。私の拙い知識の中では、プログラムA中でdllに格納されたクラスBを呼ぶ場合は、プログラムAがレジストリからクラスBがどのdllに含まれているクラスかという対応を知る必要があると思っております。そのレジストリに格納されているべき情報が、登録されていないのが原因ではないかと推測しています。例えば、XPでレジストリエディタから"ADSystemInfo"を検索すると、キーとそのクラスIDの値が格納されています。NTにはありませんでした。 "IADsContainer"も試させて頂いたのですが、CreateObjectができず"ADSystemInfo"と同様のエラーでした。

このレジストリに登録されないということが、通常にインストールしただけでは登録されないものなのか、仮にそうであれば何か登録するためにすべき手順があるのではないか、そもそもNTの場合はXPとは違う形式なのか等色々頭の中に浮かび、混乱してきたため、何かしら情報をお持ちの方がおられましたら助けて頂きたいと思った次第です。




[ メッセージ編集済み 編集者: mekkem 編集日時 2004-07-28 11:37 ]
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2004-07-29 08:26
TypeLibのレジストリが正しいかどうかは、OleViewで確認するのが良いです。

Oleview.exe: OLE/COM Object Viewer

左ペインの、Type LibraiesからActive DS Type Libraryをダブルクリックすると、
インターフェースの情報が確認できます。
mekkem
会議室デビュー日: 2004/07/27
投稿数: 5
投稿日時: 2004-07-30 20:32
お返事遅れてすいません。

OleViewrは教えていただいた所から落としたものには、"iviewers.dll"が含まれていなかったため、以下のアドレスからダウンロードしたものを使用しました。
http://www.microsoft.com/com/resources/oleview.asp

そのOleViewrで確認したのですが、インターフェースやクラスIDの情報は確認できるのですが、該当するレジストリキーや値が見つかりませんでした。。
残念です。NTからADSIを使うのがこんなに手間がかかるとは思いませんでした。。
ありがとうございました。
1

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