2009/04/03(Fri)VB2009がレジストリキーを削除する不可解な挙動
2009/04/03 14:41
という質問を受けたので、ちょっと調べてみた。
現象
その削除されるキーというのは、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorerである。
セキュリティパッチをこつこつ適用しているPCは
HonorAutoRunSetting REG_DWORD 0x00000001という値があるはず。
MSKB - Windows の自動実行機能を無効にする方法によれば、デフォルトの値は0x01であり、更新パッケージに問題があって以前の状態にしたいときだけ0x00を指定せよということなので、キーを削除したところで問題はなさそう。
問題は、同じ階層に自動起動を無効化する設定値を書き込んでいる場合。
ユーザーごとの自動起動レベルの設定は、同じ階層のHKCUの位置*2
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorerに
HonorAutoRunSetting REG_DWORD 0x000000ffに用意されているが、先ほどのHKLMの位置に書くと、全ユーザーに設定されているはずである。
にもかかわらず、ウイルスバスター2009は何故かこのキーをまるごと消してしまうらしい。これは困った。
検証
とりあえず、報告が正しいのかどうかを検証するため、今日までセキュリティパッチを当てた状態のXPのVirtual Machine環境でテストしてみた。VB2008をまずインストールし、次にVB2009をインストール。*3
すると、見事にキーが消えた。あらまぁ。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorerには他にも、シェル周りのいろんな制限設定を書けるのだけど、これごとばっさり削除とはどういう意図なのかなぁ?
まあ今自分はVBユーザーではないので、「消えた部分は自分で復元するしかない」という答えを出したところで調査打ち切り。
気になる人は、トレンドマイクロに問い合わせてみてください。
もし何らかの答えを得られた方は、是非コメントください。長文にわたる場合は、記事へのトラックバックでも構いません。