2009/04/03(Fri)VB2009がレジストリキーを削除する不可解な挙動

2009/04/03 14:41 Software::Windows
ウイルスバスター2009を2008からアップデートしたら、Windowsの自動起動を無効化するMicrosoftの更新プログラム*1が作成したレジストリ キーを削除されたけど、仕様?」
という質問を受けたので、ちょっと調べてみた。


*1 : KB953252またはKB967715

現象

その削除されるキーというのは、
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は何故かこのキーをまるごと消してしまうらしい。これは困った。

*2 : でもなぜかHKCUの方はPoliciesのPが大文字……w

検証

とりあえず、報告が正しいのかどうかを検証するため、今日までセキュリティパッチを当てた状態のXPのVirtual Machine環境でテストしてみた。
VB2008をまずインストールし、次にVB2009をインストール。*3

すると、見事にキーが消えた。あらまぁ。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorerには他にも、シェル周りのいろんな制限設定を書けるのだけど、これごとばっさり削除とはどういう意図なのかなぁ?

まあ今自分はVBユーザーではないので、「消えた部分は自分で復元するしかない」という答えを出したところで調査打ち切り。
気になる人は、トレンドマイクロに問い合わせてみてください。
もし何らかの答えを得られた方は、是非コメントください。長文にわたる場合は、記事へのトラックバックでも構いません。

*3 : 新規インストールの場合どうなのかは調べていない。