ロイドベンチャーシステム雑記<ロイドの日記>

弊社「株式会社ロイドベンチャーシステム」は、千葉県(主に南房総地域)でパソコンの何でも屋をしています。

Vistaの罠:VirtualStore

2008-09-09 19:24:50 | 技術部屋より

Vistaでは管理者以外のユーザが、うかつに重要なシステムフォルダを書き換えられないようになっている。
また書き換えても、一見書き換わったようにみえて、実はそのユーザの為だけの仮想システムフォルダが更新されていることがある。

これを知らず、かなり悩んだ経験を記録。

-----
1.経緯
昨年冬
お客さんからの依頼により、Accessでプログラムを作成(MDBファイル形式)。

お客さんのPCはVista Home Premium
お客さんはAccessを所有されていなかったので、最近無償配布となったAccess2007 Runtimeをインストールした。

作成プログラム(MDB形式)は、「C:¥Program Files¥給与計算システム」にインストールし、数ヶ月運用してもらっていた。

2.正体不明の現象
3ヶ月ほど経過し機能追加の要望が。

そこで、Ver.2のプログラムファイルを持参し適用作業。
念のため、フォルダ”C:¥Program Files¥給与計算システム”を別任意フォルダにコピーしておく。
その上でし、Ver.2のMDBをフォルダ”C:¥Program Files¥給与計算システム”にコピー。

実行すると、、、
・・・あら? 旧Versionの画面がでる。

何度やっても同じ。
仕方なく、元の環境に戻す。

一応復元が成功しているかテスト。
問題ない。
ちゃんと旧Verで動作するしお客様が入力されたデータも表示される。

調査の為に、お客様のフォルダ”C:¥Program Files¥給与計算システム”の内容をコピーし、自社PCで調査。
ここで、また驚く。
「ユーザが入力したデータが空っぽだぞ!
 うっかりユーザデータを消してしまったのか!?」

どうにもわからない。
上書きしたはずのプログラムファイルは反映されず。
しかも、ちゃんとお客さんのPCでは存在していたユーザデータが、自社PCで見ると空っぽ。

もしや、Vista特有のHDDアクセスキャッシュ機能が悪さしているのか?
何しろVistaにはReadyBoostのようなキャッシュ技術が新導入されているわけだし。
どうにもわからない。

3.原因判明
色々Webを彷徨って見つけたのが、
「Windows Vista の VirtualStoreファイル」
であった。

ソフト類をインストールすると、フォルダ「¥Program Files¥???」に大抵は格納される。
しかし、以後「¥Program Files¥???」内部に変更が行われようとすると、ログインユーザごとの仮想「¥Program Files¥???」に差分ファイルが書き込まれていくのだ。

今回の場合、
フォルダ「C:¥Program Files¥給与計算システム」の中身は、インストール直後から変化なし。
ユーザが日々入力した内容や、私が必死に上書きコピーしようとしたMDBは、
「c:¥users¥[ユーザー名]¥AppData¥Local¥VirtualStore¥Program Files¥給与計算システム」
に格納されていたわけだ。
※このフォルダは非表示なので、フォルダ表示オプションで”全てのフォルダとファイルを表示”にしておく必要がある。

4.対応手段
対応策は、
・「c:¥ ~ ¥VirtualStore¥Program Files¥給与計算システム」内のユーザデータ格納ファイルをUSBメモリにコピー
・インストールフォルダを「c:¥給与計算システム」に変更
・USBメモリから「c:¥給与計算システム」内に、ユーザデータをコピー
であった。


5.推察など
最近のソフトの幾つかに、Program Files下へのインストールを嫌がるものがあるのは、こういった理由からなのだろう。
全く、参ったもんだ。

-----

私の説明は情報に偏りがあることは重々承知しております。
詳細は「Vista  VirtualStore」をキーワードにして、WEB検索お願いします。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。