Tech Racho エンジニアの「?」を「!」に。
  • インフラ

[Windows] Vista以降ではVirtualStoreのインストール先が変更される

Vistaや7では当たり前のことで、ちょっと古いネタなのですが、XPから移行した際にはまりかねない点なので書いてみます。

Windows Vistaから一部ディレクトリの権限が変更された

Vista以降では、C:\Program FilesC:\Windows 以下などへ通常権限では書き込めません。

UAC(ユーザーアカウント制御)が有効になっている限り、管理ユーザも普段は通常権限になるので、これらのフォルダに変更を加えようとするとUACが発動するはずです。

この制限はプログラムから書き込む場合も同じで、管理者権限で起動(起動時に右クリック「管理者として実行」)した場合は良いのですが、そうでない場合は書き込めません。

プログラムは通常 C:\Program Files にインストールするので、プログラムディレクトリにデータを保存できない、ということになります(UAC対応していない場合)。
そのため、行儀正しいプログラムは、Application Dataなどに設定を書き込みます。

ソフトウェアのインストール先も変更されることがある

一部のフリーソフトなどは、プログラムファイルと同じ場所にファイルを書き込もうとします。
このようなソフトから書き込みを試みた場合、単に失敗するのではなく、別のフォルダにリダイレクトされて書き込まれます。

具体的には、C:\Users\ユーザ名\AppData\Local\VirtualStore 以下に書き込まれます。

たとえば、babaがC:\Program Files\HogeApp\HogeApp.exe をログインして起動した場合、HogeApp.exeから同じフォルダに書き込むと、

C:\Users\baba\AppData\Local\VirtualStore\Program Files\HogeApp

にファイルが生成されます。

設定ファイルが無い!とか、管理者権限で起動したら設定が変わってる!という場合、これを調べてみると良いと思います。

追伸

ちなみに、AppDataフォルダは隠しフォルダなので、フォルダオプションで表示設定しないと出てきません。


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。