
古いアプリケーションが「Program Files」ディレクトリに書き込めないために、奇妙な動作をするのにうんざりしています。手動で管理者として実行するように設定するのは嫌ですし、セキュリティについても特に心配していません。実行するアプリケーションを信頼しているだけでなく、Windows を起動するのはゲームを実行するときだけなので (パーティションには貴重なデータは含まれません)、結局 2 か月ごとに Windows を再インストールすることになります。
Program Files および Program Files (x86) を、権限に関係なくすべてのアプリケーションが書き込み可能な通常のディレクトリ (権限の観点から) にするにはどうすればよいでしょうか?
現在は Windows 10 を使用していますが、将来の参考のために、8/7/Vista でもこれを行う方法を知りたいです。
編集: 私は Windows 10 のエンタープライズ エディションを使用しているので、必要に応じてグループ ポリシーなどを変更できることを指摘しておきます。
答え1
フォルダーのセキュリティ設定を変更することで、アプリケーションが Program Files に書き込むようにすることができます。
- プロパティに移動して、「セキュリティ」タブを選択します。
[詳細設定]をクリックします。
- 所有権を ではなく自分のアカウントに変更し
TrustedInstaller
、それを伝播させます。これにより、プリンシパルのリストに自分自身を追加できます。 - 「追加」をクリックしてユーザー名を入力し、「名前の確認」を押すと自動修正されます。
これで、ユーザー名に「フル コントロール」を追加でき、実行するすべてのアプリケーションがこのフォルダーとそのサブフォルダーに書き込むことができるようになります。
これにより、Chrome で OpenVPN プロファイルをインストール ディレクトリに直接保存できるようになりました。
答え2
Windows Vista で導入されたセキュリティ機能 (UAC) により、管理者以外のプログラムが「Program Files」などの保護された場所に書き込みを試みると、書き込みがキャッチされ、別の「ユーザーフレンドリーな」場所にリダイレクトされます。
Wikipediaによれば(関連するセクションを強調表示しました):
ユーザーが管理者権限で実行されることを前提として作成されたアプリケーションは、以前のバージョンのWindowsでは、制限されたユーザーアカウントから実行した場合に問題が発生していました。これは、多くの場合、マシン全体またはシステムディレクトリ(Program Filesなど)またはレジストリキー(特にHKLM)への書き込みを試みたことが原因でした。UACは、次の方法でこの問題を軽減しようとします。ファイルとレジストリの仮想化。書き込み (および後続の読み取り) をユーザー プロファイル内のユーザーごとの場所にリダイレクトします。たとえば、アプリケーションが「C:\program files\appname\settings.ini」に書き込もうとし、ユーザーにそのディレクトリへの書き込み権限がない場合、書き込みは「C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini」にリダイレクトされます。
これは変えられないものではありません。これは意図的なものです。