web-dev-qa-db-ja.com

通常のユーザー権限を持つアプリケーションの[システムレジストリの更新に失敗しました]ダイアログを削除する方法

実行時にWindowsレジストリを変更するアプリケーションがあります。管理者権限でアプリケーションは正常に実行されますが(問題ありません)、通常のユーザーがアプリケーションを実行すると、次のメッセージを含むダイアログボックスが表示されます。

システムレジストリの更新に失敗しました。 REGIDITを使用してみてください。

[OK]ボタンをクリックすると、アプリケーションは正常に実行されます。しかし、私はこのメッセージを取り除きたいです。

問題は明らかにパーミッションにあります。

アプリケーションはスタンドアロンの実行可能ファイルです。

誰かが解決策を提案できますか?

2
MA1

Windows 7の場合:アプリケーションを実行するために管理者権限が必要であり、それを信頼する場合は、実行可能ファイルのプロパティを変更して、常に管理者として実行するようにします。 IRC、実行可能ファイルを右クリックします。オプションは[互換性]タブの下部にあります。 -UACを正しく処理し、通常のユーザーとして実行できる新しいバージョンのアプリがあるかどうかも確認します。

Windows XPの場合:RunAsユーティリティを使用して、別の特権で一部のプログラムを起動できます。詳細については、次のURLを参照してください。

http://www.Microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true

1
jhcaiced

Sysinternals Process Monitor を使用して、アプリケーションが(通常のユーザーとして)レジストリのどこにアクセスしようとしているのかを確認します。

フィルタをプロセス名に設定し、レジストリアクティビティのみを監視します(ネットワーク、ファイルなどを無効にします)。

次に、(結果列で)アクセス拒否メッセージを探し、それらのレジストリの場所にアクセス許可を設定します。

お気をつけください....

3
Asher