(Mark Minasi)

 Windows XP Service Pack 2(SP2)を恐れる人々(そしてある割合で2003 SP1を恐れる人々も)の小さな悲劇を超えた大きな悲劇とは,XP SP2を導入したのにその素晴らしい新機能を使っていない人たちの悲劇である。XP SP2の新機能で私のお気に入りの1つは,Internet Explorer(IE)の中にある新しいロックダウン用機能「アドオンの管理」である。

 XP SP2が登場してほぼ1年になるが,多くの人々はまだそれを使っていない。これは残念なことだ。XP SP2と一部のレジストリやグループ・ポリシーとの非互換性の問題の大半は解決できるし,残る非互換性の部分もMicrosoftのツール「Windows Application Compatibility Toolkit(ACT)4.0.1」を使えば除けるからである。ACT 4.0.1は,Windows Server 2003 SP1とXP SP2用に特別に用意された互換性の修正セクションを備えている。Windows Application Compatibility Webサイトで,ACT 4.0.1の詳細を調べて,無償ダウンロード版を入手しておくことだ(該当サイト)。

IEのアドオンを管理する新機能
 一方,IEの「アドオンの管理」における「アドオン(Add-ons)」とは,ActiveXコントロールと「ブラウザ・ヘルパー・オブジェクト(BHO)」用のMicrosoft用語である。みんながActiveXコントロールとBHOという用語を聞いたことがあるだろう。しかし,多くの人はそれらが何なのかを理解していない。

 基本的には,それらはExcelや「メモ帳」などのアプリケーションに似たプログラムなのだ。変わっているのは,Excelやメモ帳がWindows上で動作するように作られているのに,アドオンはIEの中でしか動作しない。

 悪意のあるユーザーの手にかかると,こうしたプログラムはあなたのシステム上にあらゆる破壊を引き起こす。つまりワームをインストールしたり,ファイルを削除したりする。BHOやActiveXコントロールは,あなたがIEを開いたときに自動的に起動される可能性があり,自動的に開始するWindowsプログラムと同じくらい危険を起こすものに変わりかねない。Msconfigユーティリティを使って,あるマシン上でWindowsが起動したときに自動的に起動されるプログラムをすべて表示できるが,残念なことにアドオンにはそういうプログラムが存在しなかったのだ。

 XP SP2はこの欠点を1つのツールで少し改善した。そのツールはあなたのアドオンのいくつかをリスト表示するものだ。このツールを使うには,IEを開いて[ツール]-[アドオンの管理]を選択実行すればよい。自分がIEにインストールしたことがあると既に分かっているはずのプログラム,例えばGoogle ToolbarやWindows Updateツールなどいくつかのプログラムを目にするだろう。しかし,自分がいつの間にかインストールした別のプログラムを見て驚くに違いない。「アドオンの管理」を使うと,あなたが望まないアドオンを無効にできる。残念ながら,「アドオンの管理」はそういうアドオンを無効にできるだけで,削除まではしてくれない。

アドオンのブラックリストも管理
 しかし,望まないアドオンを永久にシャットダウンする方法はある。XP SP2は新しいグループ・ポリシーのカテゴリを提供する。それはグループ・ポリシー・エディタで,[コンピュータの構成]-[管理用テンプレート]-[Windowsコンポーネント]-[Internet Explorer]-[セキュリティの機能]-[アドオン管理]で見つけられる。このグループ・ポリシーは,アドオンのリストを作れるようにするもので,その際にこのリストをブラックリストとして作れば,あなたのシステムはそのリスト内にないアドオンを動作させるし,ホワイトリストとして作れば,そのリストにあるアドオンだけを許可するようになる。

 良さそうでしょう?ただし,問題のアドオンを指定する方法が,面倒だということを除けばの話だ。例えば,リストにWindows UpdateまたはMacromedia Flashを追加する代わりに,あなたはこの2つのアドオンを識別するための長い16進数の文字列を指定しなければならない。それらの長い16進数の文字列は「Class ID(CLSID)」と呼ばれるものだ。

Class IDさえ分かれば…
 ではどうやって,特定のアドンのCLSIDを調べるのだろうか?いくつか方法があるが,一番簡単なのは,そのアドオンをあなたのシステムにロード(インストール)して,IEの[アドオンの管理]から調べる方法だ。[アドオンの管理]を開きその名前の列の表題を右クリックすると,表示対象のアイテムを示すドロップダウン・リストが現れる。

 ロードされたすべてのClass IDをアドオンの管理に表示させるために「クラスID」を選ぶ。どうだろう?素晴らしいではないか。ただし,「アドオンの管理」は必ずしもインストールされているアドオン全部を表示するのではないということだ。

 Microsoftはこの問題を認めていてホットフィックスを提供している。このことは,Microsoftが掲載している記事「Windows XP Service Pack 2 ベースのコンピュータで、Internet Explorer の [アドオンの管理] ダイアログ ボックスに一部のアドオンが表示されない」(該当サイト)で調べられる。このホットフィックスはその問題を解決するのに役立つが,全部の作業をしてくれるのではない。例えば,ブラウザ内ではVBScriptのスクリプト群もCLSIDを持つが,「アドオンの管理」ツールでは表示されない。HTMLページ内に埋め込まれたVBScriptスクリプトを起動してしまった場合でも表示されないのだ。グループ・ポリシーを使って「私が認めたもの以外はアドオンを起動しないこと」と書いておきたいし,そのアドオンの中にはVBScriptのスクリプトも含めたいので,私はこうしたスクリプトのCLSIDをぜひ知りたいのだ。

 これは理屈の上だけの問題ではない。アドオンのリストをブラックリストにしてみると,Outlook Web Access(OWA)のようなプログラムが動かないことが分かるだろう。賭けてもいいが,このことはユーザーのコミュニティの中でもびっくりされるだろう。Microsoftは「Outlook Web Access and Small Business Server Remote Web Workplace do not function if XP Service Pack 2 Add-on Blocking is enabled via Group Policy」という記事(該当サイト)を掲載しており,これはいくつかのプログラム(OWAとVBScriptを含む)のCLSIDの件を含むが,間に合わせの答えに過ぎない。

 なぜ単純に「アドオンの管理」を直さないのだろうか?アドオンの開発者は,恐らく自分のWebサイト上でアドオンのCLSIDを掲載できるはずではないか?

 私はアドオンを制御できるXP SP2の能力は評価するが,欠けているピースが必要だ。CLSIDである。私たちはそのいくつかが分かるが,すべてではない。ベンダーたちよ,あなたたちのプログラムの起動を私たちが簡単に許せるように,CLSIDを明文化してくれないのはなぜだ?みんなが感謝すると思う。