VistaのUACを外したらProgramFilesのファイルが消えた
UAC(ユーザーアカウント制御)を有効時にProgramFilesの中身をごちゃごちゃいじくり、結局UACを外したら、その弄くったファイルがすべて消えていた。
がんばって作った某デスクトップカスタマズのスキンが消えてしまい、どうにかならないかと調べてみたらすぐに解決方法は見つかった。
C:\Program Files フォルダ配下にプログラムの実行ファイルを配置することは一般的ですが、更新を前提とする
via: DSAS開発者の部屋:Vista で動くプログラムを書くために 〜UAC編〜
データファイル(.ini ファイル等)を配置すべきではありません。
UAC 環境においては %PROGRAMFILES% フォルダ下のファイルへの書き込みはシステムよってトラップされ、
実際には別のフォルダ(※)下に保存されます。これは「ファイルの仮想化(Virtualization)」と呼ばれるものです。
この仮想化機能は UAC に対応していないプログラムの互換性維持のみを目的に提供されているものであり、
MS 社はこれに依存しないことを推奨しています。
また、仮想化は UAC が有効な場合にのみ実施されるため、これに依存してしまうと、UAC 有効時に仮想化を経て
保存されたデータが UAC が無効化された状況ではプログラムへ反映されないという問題を誘発します。
とまあそういうわけで、UACを外すと「ファイルの仮想化」がオフになるため、消えてしまうのだ。
そしてその実態がどこにあるかというと、
C:\Users\[アカウント名]\AppData\Local\VirtualStore
ここにProgramFilesがある。
というわけで、ここからコピペで戻せば復旧完了っ!