- PR -

VBで作成したDLLをクライアントに配布したいのですが。。。

投稿者投稿内容
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2007-09-12 18:57
 お世話になっております。
Windows2000Server上でActiveDirectoryを運用しております。
クライアントはWindows2000Pro、XPPro上にOffice2000がインストールされています。

 開発環境はVisualStudio6.0 と VisualStudio2005 です。
今回VB6でActiveX DLLを作成したのですが、全クライアントのシステムフォルダにDLLを配布したいと思っておりますが、皆様でしたらどのようにされますでしょうか。

 何卒たくさんご意見をいただけたらと思います。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-09-12 19:35
VB6.0 で作成した ActiveX DLL とのことですから、registry への登録が必要でしょう。
ということで、installer のようなものを作成してやる必要があるでしょうね。

引用:

全クライアントのシステムフォルダ



これは推奨されないのでやめましょう。
%PROGRAMFILES% の配下が適切です。

配布の方法はいろいろ手段がありますが、Windows Installer で installer を作ってやった場合には、AD での配布が可能なのでそれを利用してやる方法がありますね。

ただ、配布するものっていろいろあるのでそれなりの製品を導入したほうがいいと思います。license の管理とかもありますしね。
_________________
saki1208
ベテラン
会議室デビュー日: 2006/08/22
投稿数: 86
投稿日時: 2007-09-12 22:43
saki1208です。

ログインスクリプトなんてのはどうでしょうねぇ?
# 設定するのに多少手間がかかりますので、普通はあまり
# 使用しないのでしょうけど。

VBスクリプトで作成して、アカウントのプロファイルに登
録しておけば、ログオン時に実行されます。
# 共通で大本のスクリプトを指定しておいて、その中から
# 別のスクリプトファイルを呼び出すようにしておけば、
# 別の機会にも使えるかと...

ログオフしない人、シャットダウンしない人は困りますが。

渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-09-12 23:52
引用:

ログインスクリプトなんてのはどうでしょうねぇ?



駄目ぽです。

ログオンスクリプトって、ログオンしたユーザの権限で実行されませんでしたっけ?

ActiveX DLL/コントロールの登録にはシステムレジストリへの書き込みが伴うため、管理者権限が必要になります。

そんなこんなで、「.msi 作って配布」がスタンダードで無難なセンと思います。

でも、なんで DLL 単品の配布が必要なんだろう?
普通、その DLL を必要とするアプリケーションのインストーラに含めませんかね?

そもそも、こういうことが必要となる状況そのものがまずいような気もします。


[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2007-09-13 01:14 ]
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2007-09-13 09:00
 お世話になっております。
皆様たくさんご意見をいただき、まことにありがとうございます。

 今回はその中からvsiでmsiを作ってGPOで配布という方法で行こうかと思います。


 さて、ここでアドバイスを下さった方々のためにも経緯をご説明したいと思います。
クライアントは事務の者も含めて、各自でExcelやAccessを使ってVBAでそこそこプログラムを組んで業務に役立てております。そこで使わせる共通のクラスを配布したいのですが、そのソースの中には他のサーバーサービスへのパスワード情報など、セキュリティー上知られたくない情報がたくさん含まれていますので、DLL化でもして隠蔽したいというのが今回の目的でした。

 今回の、GPOでmsiを配布という方法を取った場合、DLLのバージョンアップはどのようにされますでしょうか・・・vsi上で制御できるのでしょうか。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-09-13 11:02
引用:

そのソースの中には他のサーバーサービスへのパスワード情報など、セキュリティー上知られたくない情報がたくさん含まれていますので、DLL化でもして隠蔽したいというのが今回の目的でした。



よくない設計だと思います。

下手をしたら、DLL をダンプしただけでもパスワード等が漏れてしまいませんか?

可能なら、というか、そうできない特別が理由がない限り統合ウィンドウズ認証を使用するのが望ましいと思います。
せっかく AD も使ってるんですから。
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2007-09-13 14:28
 ご指摘ありがとうございます。
まったくおっしゃるとおりで、心配の種です。接続先のサーバーはDLLからの使用のみを目的にローカルで立ち上げたサーバーで動きは限定されているとはいえ、接続情報が見えてしまうのは望ましいとはいえません・・・

 実は今回のDLL内では

・社内のLinuxサーバーのサーバーサービスへの固定のSMTP認証ID、パスワードで接続。
・DLL内で、Windowsのマシン名やIPアドレスなどをもとに、プログラム内で細かく動きを制御

ということを行いますので、LDAPなどでの統合認証は活躍できないでいます。。。

 渋木宏明(ひどり)様のおっしゃるように、実は別の案件で統合認証を使いたいと思っております。これについては、本件が解決いたしましたら別のスレッドで是非ともお伺いしたいと思っております!


 また、よろしければ引き続き

引用:

 今回の、GPOでmsiを配布という方法を取った場合、DLLのバージョンアップはどのようにされますでしょうか・・・vsi上で制御できるのでしょうか。



についても是非お話をお聞かせいただければと思います!
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-09-13 15:13
引用:

McLarenさんの書き込み (2007-09-13 14:28) より:

引用:

 今回の、GPOでmsiを配布という方法を取った場合、DLLのバージョンアップはどのようにされますでしょうか・・・vsi上で制御できるのでしょうか。



についても是非お話をお聞かせいただければと思います!


GPOで、メジャーアップグレードが可能なら(多分できると思いますが、調査したことがないので不明)初期版の時点で
1.インストーラのバージョンは1.0.0以上にしておく
2.インストーラのバージョンを上げた際に、出てくるメッセージボックスにハイと答える。
3.UpgradeCodeは絶対にいじらない。
で、新たに作った msi を指定すればいけると思います。

が、GPO の配信情報管理とかがわかってないので、本当にそれだけで行けるかは不明です。

DLLそのものの存在意義については、すでに指摘が入っているので、まぁよいのかな?

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで

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