2009年6月23日火曜日

[Vista] レジストリのリダイレクト

Vista でレジストリを扱うときの注意。覚書的な意味で。

Vista の場合$HKLMとかに書き込むときは管理者権限がない場合、
$HKCUにリダイレクトされるという罠。
# 基本的に管理者権限であってもこの動きをする。

リダイレクトされるとOSはそれを覚えているらしく、
次回$HKLMに書き込んだ(つもりの)値を読むときにリダイレクト先から読み込もうとする。
もし存在しない場合は$HKLMをほんとに見に行く。

でも、SPなしの場合はちょっと事情が違うらしい。
リダイレクト先を読み込んで、もし存在しないときはそれ以上データを探しに行かない。
SP1以降だとちゃんと先述の動作をするようだ。

ちなみにレジストリを操作した後再起動するまではちゃんと見てくれる。
どうやら再起動することによってリダイレクト先を読み込むための情報が記憶されるらしい。

ちなみに以下のところに書き込む。
$HKCU\Software\Classes\VirtualStore\...

1 件のコメント:

  1. 追記:
    管理者権限での実行時はちゃんと$HKLMに行った。スマン。
    要はエベレーションして実行すればおk

    返信削除