Windows10 Virtual Storeの不具合が発生した時の対処方法

2017年7月5日Windows関連,パソコン関連Windows,Windows10,パソコン,パソコン関連

過去Windows10のVirtual storeに起因した不具合が起きました。

その対処方法を自分用のメモとしてまとめたものになります。

他にも同じ現象が起きている方もいる様なので防備録として、また何かの助けになればと言う事でまとめました。

スポンサーリンク

起きた事

まずテンプレートファイルを元に印刷するプログラムのテストを行っておりました。

これはWindowsXP時代から利用していたもので、ブラザーのSDK(B-pak)利用しており、SDK含めてWindows10でも使えるかの動作テストを行っていた状況です。

インストールも問題なく印刷もします。ただ印刷位置のずれ等があったのでテンプレートファイルを修正して印刷しても修正した内容がまったく反映されません。

修正したのと印刷元が異なっている気がしたので、テンプレートファイルの名前でファイル検索をしてみました。

するとテンプレートファイルがなぜか以下の場所にある事を確認しました。

C:\Users\[ユーザー名]\AppData\Local\VirtualStore

このファイルは保存した記憶が無いしプログラムの動作にも不要なはずなので削除した所、修正した内容で印刷される様になりました。

原因

どうにもテンプレートファイルがCドライブのルート直下に保存されていた事と、使っていたSDKがXPまでの古いものだった事が原因の様でした。

WindowsXPまでのプログラムをWindows10で動かす場合、互換性をとる為にVirtual storeと言う仕組みでWindows10が勝手な事をする場合が多くあります。

という事で原因はWindows10のVirtual storeという仕様と思っています。

犯人のVirtual store とは

なぜVirtual storeという所に保存されていたのか、そしてVirtual storeって何だろう、という事で調べてみました。

調べてみたら同じ現象に合われた記事を発見。

私の体験した動作もこちらで説明されている通りの状態でした。原因はWindows Vista以降に搭載された
Virtual storeと言う仕組みだった訳です。

……結論から言うと、犯人はWindows Vista以降で導入されたVirtualStoreという仕組みでした。
Windows Vista以降ではファイルに対して書き込みができない時に、「書き込めませんでした」というエラーを出す代わりに「C:\Users\ユーザ名\AppData\Local\VirtualStore」っていうフォルダの中にファイルを書き出すアプリケーションがあるみたいなんですね。

[Windows 7のVirtualStoreに泣かされた – outsider reflex]

安全重視なんでしょうが、なんだか不便な仕様です。Vistaで厳しくしすぎた弊害かも。

以降のWindowsはこういった「開発側が良かれと思ってやった事がユーザー側では余計なお世話」って仕組みが増えた気がします。

そして結果ドツボにはまることも増えてますのでどうにかして欲しいですね。

Virtual storeを無効にする方法

このVirtual storeも無効にできる様です。

ですが標準では有効になっているはずの設定なので、変えるとどんな問題が出るか分かりません。

さらにローカルセキュリティポリシーからの設定なので、Windows10 homeでは設定できない様ですので注意ください。

こちらの設定方法も前述のエントリにあるのですがWindows10 Pro バージョン1803で確認した範囲でわかりやすくしてみたいと思います。

設定方法

ローカルセキュリティポリシーはメニューの「Windows管理ツール」内の一番下に表示される様になりました。

なので左下のアイコンから呼び出したメニューの中から「ローカルセキュリティポリシー」を探してください。

起動したら「セキュリティの設定」→「ローカル ポリシー」→「セキュリティ オプション」→「ユーザー アカウント制御:各ユーザの場所へのファイルまたはレジストリの書き込みエラーを仮想化する」をダブルクリックします。

Windows10 Virtual Storeの不具合が発生した時の対処方法 ローカルセキュリティポリシー
ローカルセキュリティポリシー

プロパティが表示されたら「有効」から「無効」に変更しOKボタンをクリックすれば設定完了です。

おわりに

この仕組み、元々は安全性対策だと思います。

「ユーザーにより変更される可能性があるファイルはProgram Files等のシステム的に大事な場所へ保存しないでください」ってWindowsXP以降で変更された事で登場した仕組みなんですよね。

XP位までは大事な場所にあるファイルもプログラムが自由に修正できたので、ウイルスによる被害が大事になったのでこういう事をする必要が出てきました。

セキュリティの面からもお行儀良く作り直すのが正しいアプローチなんだと思います。

とりあえずお仕事で使っているのはいわゆる行儀の悪いプログラムなのでテスト時はこの機能をオフにしました。

ですが紆余曲折あり新しく対応する事になったので、やっぱり時代に合わせてかないとなーと思う次第です。

スポンサーリンク