0

レジストリにいくつかのものを保存するアプリケーションを作成しました。私が最初に始めたとき、私はそれらをHKEY_LOCAL_MACHINEに追加しましたが、への書き込みで許可エラーが発生し続けました。そのため、HKEY_CURRENT_USERを使用することをお勧めしました。これは、別のアカウントからアクセスできないことに気付くまで機能していました。レジストリに書き込むことができますが、すべてのアカウントがレジストリの読み取りと書き込みにアクセスできるようにするにはどうすればよいですか?

Pythonモジュール_winregを使用しました。

4

4 に答える 4

2

HKEY_LOCAL_MACHINE/Software/YourSoftware、管理者権限が必要で、インストール時のデータ用、またはHKEY_CURRENT_USER/Software/YourSoftware、この環境のみに関連するデータ(このユーザー、このプロファイルなど)用です

編集:別の方法は、構成ファイルを保存し、インストール時に適切なアクセス許可を設定することです。

2番目の編集:アプリケーションだけが一部のファイルを変更したことを確認したいという別のコメントを読んだので、変更時間を保存します。回避策:

  • 変更されないファイルを暗号化します。ユーザーが生成したキーを使用するのが最適です。
  • サービスを作成し、それを実行する特別なユーザーでインストールし、このサービスのみがファイルにアクセスできるようにアクセス許可を作成します

私の直感では、アプリだけでファイルを変更する必要があると言っていますが、どのアカウントでも非常に間違っていますが、多かれ少なかれ正しいソリューションでは、さらに複雑にする必要があります。あなたの決定:あなたの要件とおそらくあなたのデザインをレビューするか、複雑さの層とおそらくはくだらないものを追加してください。

3番目の編集:アプリを分割し、管理者権限で設定を書き込んHKLMで設定できる管理者アプリケーションを用意します。読むには通常のユーザー権限で十分ですHKLM

于 2010-10-24T20:00:06.003 に答える
0

もう1つの可能性は、HKLMキーのセキュリティをだれでもR/Wに変更することです。これがどういうわけか変更に対するセキュリティであるという考えは少しストレッチのようですが。

Regedt32にはキーを設定する機能があるため、基盤となるAPIにもキーを設定する必要があります。

とはいえ、これはアプリケーションを実行するためのめちゃくちゃな方法であり、セキュリティとセキュリティモデルの理解が著しく不足していることを示しています。(言い換えれば、典型的なWindows開発です。)

どうしてこんなに冷笑的になったのか……。

于 2011-05-12T03:49:16.447 に答える
0

HKLMに書き込むには管理者権限が必要であるか、非グローバルregキーを受け入れる必要があります。動作は、ウィンドウのバージョンによって多少異なります。

于 2010-10-24T19:55:42.590 に答える
0

すべてのユーザーがレジストリを読み取れるようにレジストリに書き込む場合は、管理者権限でプログラムを実行する必要があります。

代わりに、情報をファイルに保存したほうがよい場合があります。これにより、管理が容易になります。

于 2010-10-24T19:56:53.783 に答える