Java使わないのに(注:JavaScriptではない)、その脆弱性によってしばらく私のPCが攻撃されていたので、Javaをアンインストールし、なんやかんややっているうちに、Internet Explorerのツールバーを選ぶコマンドに空白のコマンドが表示されるようになりました。
アドインの管理を参照しても、それらしきものが見つからず、ひょっとしてYahoo!ツールバーアンインストール時に変に残ってしまったのが原因かと思って、Yahooツールバーをインストールしなおそうとしても問題解決しなかったし、IE8に戻しても解決しなかったということで、うーむ、リカバリコース?といってもなんか面倒ですよね。
ちなみに、私のPC環境は以下の通り
- OS:Windows 7 Professional 64ビット SP1
- ブラウザー:Internet Explorer 9 (32ビット版で)
そんなわけで、いろいろ調べていくうちに、この空白のコマンドはどこを参照しているのかいろいろ調べてみました。
- 1. IE起動時に読み込むレジストリキー
- 2. 上記レジストリキーに含まれる、コンポーネントクラスIDの値の参照先
- 3. コンポーネントクラスID の 名前を持つ文字列 (REG_SZ) 値 にデータが入っていないものがあるか確認
1. IE起動時に読み込むレジストリキー
IE は起動時に、以下のレジストリキーの値を読み込みます。
- 32 bit システムの場合 -
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Toolbar]
- 64 bit システムの場合 -
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Toolbar] (64 bit 版 IE の場合)
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Toolbar] (32 bit 版 IE の場合)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Toolbar をエクスポートしてみたらこんな感じでした。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Toolbar]
"Locked"=dword:00000000
"{ae07101b-46d4-4a98-af68-0333ea26e113}"="Smartbar"
"{2318C2B1-4965-11d4-9B18-009027A5CD4F}"=hex:00
2. 上記レジストリキーに含まれる、コンポーネントクラスIDの値の参照先
で、それぞれ{コンポーネントのクラス ID 値}がどこにリンクされているかというと、
- 32 bit システムの場合 -
[HKEY_CLASSES_ROOT\CLSID]
- 64 bit システムの場合 -
[HKEY_CLASSES_ROOT\CLSID] (64 bit 版 IE の場合)
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID] (32 bit 版 IE の場合)
3. コンポーネントクラスID の 名前を持つ文字列 (REG_SZ) 値 にデータが入っていないものがあるか確認
実際のところ、私の環境では、2つめの"{2318C2B1-4965-11d4-9B18-009027A5CD4F}"キーの (既定) 値に設定されている文字列データには、Google Toolbarが設定されてました。
しかし、前者の {ae07101b-46d4-4a98-af68-0333ea26e113} キーの (既定) 値に設定されている文字列にはデータが入っていませんでした。
そんなわけで、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Toolbar に登録されている問題のコンポーネントクラスIDの値が入っているものを削除、っと。
これで解決しました。