![権利を設定する](https://rvso.com/image/1452244/%E6%A8%A9%E5%88%A9%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B.png)
Windows 7 以降では、レジストリ内の任意の場所へのプログラムの書き込み権限を拒否する方法はありますか?
回答がどのバージョンの Windows に適用されるかを指定してください。
答え1
Windows Vista以降では、整合性レベル問題のプログラムの信頼性を「低」または「信頼できない」に設定します。
これを実現する方法の1つは、icacls.exe
ユーティリティプログラムの整合性レベルを設定します。たとえば、notepad.exe を低い整合性レベルに設定するとします。管理者特権のコマンド プロンプトで、次のように入力します。
icacls notepad.exe /setintegritylevel low
これにより、メモ帳がシステム ファイル、さまざまなレジストリ ハイブなど、中程度または高い整合性レベルを持つシステム レベル オブジェクトに影響を与えることがなくなります。
問題のプログラムによっては、これは非常に良いことかもしれないし、とても悪いアイデア。
整合性レベルは理解しにくいものです。時間をかけて慎重に確認してください。ドキュメント発見する方法を学ぶ現在の整合性レベル、そして試みている変更の影響を完全に理解します。
なれとてもこれを実行するときは注意してください。特に、自分が何をしているのかよくわからない場合は、物事をひどく台無しにしてしまう可能性が非常に高いからです。バックアップを作成し、コピーで実験し、自宅で試さないでください。秘書がすべての知識を否定するでしょう、などなど。
答え2
直接ではありませんが、それが機能する状況を作り出すことは可能です。
レジストリではユーザー アカウントのセキュリティ設定を設定できますが、プログラムのセキュリティ設定は設定できません。
別のユーザーとしてプログラムを起動することもできます。理論的には、変更できないユーザー アカウントを作成し、そのユーザーに特定のレジストリ キーを変更する権限を与えないように明示的に設定し、そのキーの読み取り権限と、必要に応じて他のキーへの書き込み権限を与えることができます。
ご了承ください: レジストリへのアクセスを制限すると、プログラムは通常、書き込み先のレジストリ部分が実際に読み取れるかどうかをチェックしないため、特に HKEY_Current User セクションで権限を設定している場合は、奇妙なエラーが発生する可能性があります。
権利を設定する
レジストリを開き、権限を変更するキーに移動します。キー (フォルダーのようなもの) を右クリックし、[アクセス許可] を選択します。
ここから権限を付与できます。フル コントロール = 値のクエリ、値の設定、サブキーの作成、サブキーの列挙、通知、リンクの作成、削除、DAC の書き込み、所有者の書き込み、およびコントロールの読み取りなど、すべてを実行できることに留意してください。
特別な権限を使用すると、個別の権限を設定できます。これを行うには、Advancedボタンを押します。