Windows: 通常の(昇格されていない)プログラムが Program Files ディレクトリに書き込むことを許可する

Windows: 通常の(昇格されていない)プログラムが Program Files ディレクトリに書き込むことを許可する

古いアプリケーションが「Program Files」ディレクトリに書き込めないために、奇妙な動作をするのにうんざりしています。手動で管理者として実行するように設定するのは嫌ですし、セキュリティについても特に心配していません。実行するアプリケーションを信頼しているだけでなく、Windows を起動するのはゲームを実行するときだけなので (パーティションには貴重なデータは含まれません)、結局 2 か月ごとに Windows を再インストールすることになります。

Program Files および Program Files (x86) を、権限に関係なくすべてのアプリケーションが書き込み可能な通常のディレクトリ (権限の観点から) にするにはどうすればよいでしょうか?

現在は Windows 10 を使用していますが、将来の参考のために、8/7/Vista でもこれを行う方法を知りたいです。

編集: 私は Windows 10 のエンタープライズ エディションを使用しているので、必要に応じてグループ ポリシーなどを変更できることを指摘しておきます。

答え1

フォルダーのセキュリティ設定を変更することで、アプリケーションが Program Files に書き込むようにすることができます。

  1. プロパティに移動して、「セキュリティ」タブを選択します。
  2. [詳細設定]をクリックします。

    ここに画像の説明を入力してください

  3. 所有権を ではなく自分のアカウントに変更しTrustedInstaller、それを伝播させます。これにより、プリンシパルのリストに自分自身を追加できます。
  4. 「追加」をクリックしてユーザー名を入力し、「名前の確認」を押すと自動修正されます。

これで、ユーザー名に「フル コントロール」を追加でき、実行するすべてのアプリケーションがこのフォルダーとそのサブフォルダーに書き込むことができるようになります。

これにより、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」にリダイレクトされます。

これは変えられないものではありません。これは意図的なものです。

関連情報