2012-03-27 16 views
1

私のインストーラには管理者権限が必要です。インストール中に、現在ログオンしているユーザーのレジストリのHKCUツリーに値が書き込まれます。ただし、このユーザーアカウントがいわゆる標準アカウントの場合、ユーザーはインストーラーの起動時に管理者アカウントの資格情報を指定する必要があります。値は、現在ログオンしているユーザーのHKCUではなく、この管理者アカウントに関連するHKCUツリーに書き込まれます。 インストーラがローカルのAppDataにデータを書き込んで、デスクトップにショートカットを作成したい場合、同じ問題が発生します。インストーラをHKCUレジストリツリーに書き込む方法を教えてください。

どうすればこの問題を回避できますか?

+0

インストーラが「管理者として実行」する必要があること、またはインストーラ自体が管理者になりすますために資格情報を要求することはありますか? – ShiggityShiggityShwa

+0

@ShiggityShiggityShwaログオンしているユーザーが標準のWindowsアカウントである場合、インストーラは資格情報の入力を要求します。ログオンしているユーザーが管理者アカウントの場合、UAC画面のプロンプトが表示されます。 – Dabblernl

+0

誰に管理者権限が必要ですか? – Anders

答えて

1

管理者権限を求める場合は、通常、すべてのユーザーに対してシステム全体のインストールを実行していることを意味します。このタイプのインストーラを作成するときは、「間違ったユーザー」のアクションを終了させることができるだけでなく、その1人のユーザーのインストールの初期化も終了するだけでなく、HKCUまたは%USERPROFILE%に書き込むことはお勧めできません。すべてのユーザーではありません。

この一般的なデータをHKLM\Software\YourCompany\YourApp\CommonDataおよび/または<CSIDL_COMMON_APPDATA|CSIDL_PROGRAM_FILES>\YourCompany\YourApp\CommonDataに書き込み、最初にユーザーが実行したときにこのデータをアプリケーションにインポートすることをお勧めします。

ユーザーごとのインストーラ(Chromeなど)を作成することも考えられますが、のみと%USERPROFILE%に書き込むことができます。

2

これは、ユーザー単位の場所(HKEY_CURRENT_USER)にデータを書き込むマシン単位のインストールを使用しているために発生します。

正しい方法は、ユーザー単位のインストールのみ、またはマシン単位のインストールのみ(コンピュータ単位のインストールのみ)(HKEY_CURRENT_USERの代わりにHKEY_LOCAL_MACHINE)を使用することです。

関連する問題