[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フォルダは隠しフォルダなので、フォルダオプションで表示設定しないと出てきません。

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

baba

ゆとりプログラマー。 高校時代から趣味でプログラミングを初め、そのままコードを書き続けて現在に至る。慶應義塾大学環境情報学部(SFC)卒業。BPS設立初期に在学中から参加している最古参メンバーの一人。Ruby on Rails、PHP、Androidアプリ、Windows/Macアプリ、超縦書の開発などを気まぐれにやる。軽度の資格マニアで、情報処理技術者試験(16区分17回 + 情報処理安全確保支援士試験)、技術士(情報工学部門)、Ruby Programmer Gold、AWSソリューションアーキテクト(アソシエイト)、日商簿記2級、漢検準1級などを保有。

babaの書いた記事

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ