人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

WindowsNT、2000、XPでAdministrator権限でログオンしソフトをインストール、起動を確認した後、ログオフし一般ユーザーでそのソフトを起動しようとしたところ、「ソフトウェアの初期化に失敗しました」というようなエラーメッセージが出てしまい、起動できませんでした。
複数台インストールし、1台だけこのような症状になりました。インストールしたexeファイル等の権限は全てフルコントロールになっています。
原因として何が考えられるでしょうか?
ソフトウェアはVB6で作成され、ディストリビューションウィーザードでインストーラーを作成したものからインストールしました。

●質問者: smileless
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:exe vb6 WindowsNT XP インストーラ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● えふけー
●1ポイント

http://dobon.net/vb/installer/installer2-1.html

ディストリビューションウィザード: VBに適したインストーラを探そう

VB6.0(SPの一致するもの)ランタイムのインストールがされていないのではないでしょうか。

windows2000ではmsvbvm50.dllがないといけないうわさがあるとのことです。


2 ● moochin2004
●30ポイント

http://www.yahoo.co.kr/

醤板! 坪軒焼

URLはダミーです。

失敗した1台はNTですか?2000ですか?XPですか?

おそらくXPではないでしょうか?

(一般ユーザのフォルダやレジストリに対する対する権限が微妙に厳しくなっていたように思います)

そのパソコン(XP)の一般ユーザの権限(インストールしたexeファイル等のフォルダではなくシステム関係のフォルダへのアクセス権限)が厳しくなっているからではないでしょうか?

さしあたりパワーユーザか最悪アドミニストレータグループに放り込んで違いを確認されてはいかがでしょうか?

(※直接の解決策は提示しておりませんのでポイントは結構です)

◎質問者からの返答

ありがとうございます。

OSは2000です。

ただ、権限についてはかなりついています。

一般ユーザーはシステムフォルダの内容を変更することが出来ないようになっています。

(それはインストールできた端末も同じなのですが・・・)

権限関係、もう一度確認してみます。


3 ● cx20
●20ポイント

http://www.microsoft.com/japan/msdn/windows/windows2000/win2000a...

このページは、存在しないか、削除されています。

URL はアプリケーション開発時の注意点です。

「セキュリティ問題」の項目を参照してください。

考えられる原因はいくつかあると思いますが、

・Program Files にファイルを書き込もうとしている

・レジストリ HKEY_LOCAL_MACHINE に書き込もうとしている

といった原因が該当しているのでは?と思います。

http://www.atmarkit.co.jp/fwin2k/win2ktips/111regmon/111regmon.h...

@IT:Windows TIPS -- Tips:レジストリへのアクセスをモニタする方法

また、自作のプログラムで無い場合、

どのようなレジストリを参照しているかが分かりません。

このような場合「regmon」というツールを使うと、

どのようなレジストリの項目にアクセスしているかを

調べることができます。

http://www.atmarkit.co.jp/fwin2k/win2ktips/059execau/execau.html

@IT:Windows TIPS -- TIPS:一時的にほかのユーザー権限でプログラムを実行する方法(ショートカット・メニューを利用する方法)

また、根本的な解決策では無いかもしれませんが、

「一時的にほかのユーザー権限でプログラムを実行する方法」

という方法があります。

参考まで。

◎質問者からの返答

ありがとうございます。

・Program Files にファイルを書き込もうとしている

Cドライブの直下にフォルダを作り、そこにEXEファイルを書き込んでいます。

インストール自体はできるのです。

・レジストリ HKEY_LOCAL_MACHINE に書き込もうとしている

ここには何も書き込んでいないようですが確認してみます。

2番目のツール便利ですね。今後活用したいと思います。

3番目、興味深いです。臨時のときに便利そうです。あとでゆっくり読ませていただきます。


4 ● cx20
●20ポイント

http://support.microsoft.com/?kbid=256986

Windows registry information for advanced users

先ほど補足です。

> ・Program Files にファイルを書き込もうとしている

と書いたのは

「インストール実行時」の話ではなく、

「アプリケーション実行時」の話です。

C:¥Program Files¥<App Name> の下にアプリケーションを

インストールすることは問題ありません。

ただ、アプリケーション実行時に設定ファイル(例:AppName.ini)

のようなものを読み書きする仕組みになっていると、

C:¥Program Files¥<App Name>¥AppName.ini

をアクセスしたときに、アクセス違反となり、

結果としてなんらかのプログラム(DLL)が「初期化失敗」となる可能性はあります。

また、

> ・レジストリ HKEY_LOCAL_MACHINE に書き込もうとしている

についてですが、

通常は、アプリケーション用のレジストリ項目を作成する場合は、

・HKEY_LOCAL_MACHINE(すべてのユーザーに適用。以下 ”HKLM” と省略します。)

ではなく

・HKEY_CURRENT_USER(ログオンしているユーザーに適用。以下 ”HKCU” と省略します。)

を使うことが推奨されています。

HKLM の場合、セキュリティの設定が厳しく、アクセス許可のある

ユーザーが Administrators に制限されている可能性があります。

この為、一般ユーザーでログオンしアプリケーションを実行した場合、

HKLM¥SOFTWARE¥<Company Name>¥<App Name>

にアクセスした場合、たとえば、書き込みを行おうとした場合に、

「アクセス違反」となり結果として「初期化失敗」となる可能性はあります。

http://www.microsoft.com/windows2000/ja/server/help/permit_key_r...

Windows 2000 Server

また、これも根本的な解決策ではないのですが、

「regedt32.exe」というツールを使うと

強制的にレジストリのアクセス権を変更することが可能です。

先ほどの

HKLM¥SOFTWARE¥<Company Name>¥<App Name>

に対して、一般ユーザー(Users)にフルコントロールの

アクセス権を割り当ててあげると、アプリケーションが

動作するようになるかもしれません。

レジストリの設定を変更するのは大変危険ですから、

もし、行う場合は、十分に注意してから行うように

してください。

(動かなくなっても、保証しかねますので・・・(^^A)

http://support.microsoft.com/?kbid=815065

What is a DLL?

また、トレースする別の方法として、

■ Dependency Walker(depends.exe)

http://www.dependencywalker.com/

Dependency Walker (depends.exe) Home Page

というフリーソフトを使う方法があります。

「Dependency Walker」はその名の通り、

アプリケーションの「依存関係(どのような DLL を利用しているか?など)」

を調査するためのツールです。

<簡単な使い方>

1. Dependency Walker(depends.exe)を起動

2. [File] - [Open] で対象となるアプリケーション(*.exe)を選択

3. [Profile] - [Start Profile] を選択し [OK] ボタンを押下

これを行うことで、アプリケーションが実行時に

どんな DLL を利用しているかが分かります。

(ログ表示ウィンドウにリアルタイムに情報が表示されます。)

「初期化に失敗しました」とエラーが表示される直前に

読み込まれた DLL を調べることによって、

どの DLL の読み込みに失敗したのかが分かる「かも」しれません。

参考まで。

◎質問者からの返答

詳しいご解説、ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ