一昨日書いた、
に id:sakurai_youhei さんからコメントいただきました。ファイルの権限の問題なら、 ProcessMonitor でファイル I/O の様子を見てみると良いと。なるほど!!
帰ってきて、壊れてる方のアカウントにログインして、早速見てみました。判明しました。
C:\Users\oogatta\AppData\LocalLow\Microsoft\Internet Explorer\DOMStore
に書き込めてない。 oogatta はユーザ名です。
そもそも、これまでずっと AppData\Local を見ていました。 LocalLow ってなんだ…。と思って検索してみると、
Windows 8 で PC をリフレッシュすると、Silverlight が動作しない場合がある
この Knowledge Base が引っかかりました。これだ…。自分、一度 Windows8 を Windows8 の「リフレッシュ」機能でリフレッシュしています。
icacls "%USERPROFILE%\AppData\LocalLow\Microsoft" /setintegritylevel (OI)(CI)low
をコマンドプロンプトで実行。治りました。整合性レベルが壊れていたと…(おそらく Medium になってしまった)。保護モードによって、自分ユーザ権限であるけれど一段低い整合性レベルを与えられた IE10 から触れなくなってしまったんですね。
Windows Vista から導入されていた整合性レベルについては、
Security Professionals Network Inc. - 【SPN通信】Windowsの整合性レベルによるアクセス制御
こちらのページで理解できました。知らなかった。全く知りませんでした。
そういえば、この localStorage が使えなかった IE10 、保護モードは元々デフォルトで有効なんですが、さらに拡張保護モードも有効にすると localStorage が使えていたんですよね。拡張保護モードが有効な IE10 って要するにメトロの IE10 で 64 bit なんですが、試しにこちらの状態で localStorage の読み書きを行ってみたところ、
C:\Users\oogatta\AppData\Local\Packages\windows_ie_ac_001\AC\Microsoft\Internet Explorer\DOMStore
へアクセスがありました。場所が違います。
ちなみに保護モードも拡張保護モードもオフにすると、
C:\Users\oogatta\AppData\Local\Microsoft\Internet Explorer\DOMStore
でした。
ちなみに IE10 が期待通りに動く状態での整合性レベルは、
C:\Users\oogatta\AppData\Local\Packages\windows_ie_ac_001\AC\ C:\Users\oogatta\AppData\LocalLow\
が "Low Mandatory Level" でした。
IE の「保護モード」ってそういうことだったんですねえ…。いやあ、勉強になりました。