VirtualStoreについて

このエントリーをはてなブックマーク Share

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

Vista以降では、C:\Program Files や C:\Windows 以下などへ通常権限では書き込めません。
UACが有効になっている限り、管理ユーザも普段は通常権限になるので、これらのフォルダに変更を加えようとするとUACが発動するはずです。

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

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

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

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

例えば、C:\Program Files\HogeApp\HogeApp.exe を、babaがログインして起動した場合、HogeApp.exeから同じフォルダに書き込みしたら、
C:\Users\baba\AppData\Local\VirtualStore\Program Files\HogeApp
にファイルが生成されます。

設定ファイルが無い!とか、管理者権限で起動したら設定が変わってる!という場合、これを調べてみると良いと思います。
ちなみに、AppDataフォルダは隠しフォルダなので、フォルダオプションで表示設定しないと出てきません。

Bookmark and Share

Comment / Trackback

コメントはまだありません。

コメントフォームは現在閉鎖中です。