前回は,修正パッチ情報へ簡単にアクセスできるサンプル・プログラムを紹介しました。今回と次回の2回にわたり,修正パッチ情報そのものを検討してみることにします。第1回目の今回は,次のような視点から修正パッチ情報を検討します。

“マイクロソフトは修正パッチ情報をどのように公開しているのか”

 本連載でこれまで紹介してきたサンプル・プログラムを実行すると分かるように,私たちのWindows環境にはかなりの量の修正パッチが適用されています。そこで今回は,2003年09月10日に公開された修正パッチ(KB824146)に焦点を当て,対応するパッチ情報を検討してみることにします。それでは今回のサンプル・プログラムを紹介しましょう。

図1●Windows XP SP1環境でのサンプル・プログラムの実行結果

今回のサンプル・プログラム

 まずはいつものようにこちらからサンプル・プログラムをダウンロードし,実行してみましょう。今回のサンプル・プログラムはWindows XP SP1とWindows Server 2003環境で動作を確認しています。図1[拡大表示]は私のWindows XP SP1環境で実行した結果です。他の環境で実行する場合には,第14回前回の記事を参考にしてください。

 図1の「Total Instance Count」を見ると74種類の修正パッチ情報が適用されていることがわかります。今回のサンプル・プログラムは,「InstalledDate: 9/10/2003」という情報を持つKB824146修正パッチに関する情報をのみを返してきます。さて,皆さんの環境では「Total Instance Count」の値はどれほどの数値になっているでしょうか?

 この画面から分かることは,KB824146修正パッチを適用すると,3種類のシステム・ファイルが更新されることです。3種類のファイルとは,画面から分かるように,ole32.dll,rpcrt4.dll,rpcss.dllの3つです。これらのファイルの格納先はシステム・ディレクトリです。更新されるこれら3種類のシステム・ファイルについては,次回説明する予定です。

 画面先頭付近を見ると,「InstalledDate: 9/10/2003」という情報が表示されています。私は当初「InstalledDate」という項目名から,この項目は(私たちユーザーが)修正パッチをインストールした日付を示しているものと思っていましたが,実際には,当該修正パッチが一般公開された日付を示しているようです。より正確に言えば,米国での公開日付を示しているようです。「InstalledDate」という項目名は,常識的に解釈すれば,「インストールされた日付」という意味を持っていますから,現実を正確に反映するような結果を返してくるように,インストール・プログラムの修正をお願いしたいところです(厳密に言えば,実装ミスといってよいでしょう)。「InstalledDate」項目に値を設定しているのは,インストール・プログラムのはずです。

図2●Windows Server 2003環境でのサンプル・プログラムの実行結果
図3●TechNETサイト
 参考のために,Windows Server 2003環境の実行結果を紹介しておきます(図2[拡大表示])。Windows XP環境と異なり,Windows Server 2003環境では,システム・ディレクトリだけではなく,キャッシュ(DllCache)ディレクトリにも格納されています。インストール方法は,少なくとも二通り,と覚えておきましょう。

 マイクロソフト日本法人は,このKB824146修正パッチ情報を2003年9月11日に公開しました。公開当初は,英文のままでした。日本語化されたのは,翌日12日でした。翻訳所要時間が2日というのは,客観的に見て,マイクロソフト日本法人は“かなり努力している”と評価してよいと思います。ご承知のように,修正パッチ情報は,別のサイトであるTechNETでも公開しています(図3[拡大表示])。

 このサイトの先頭には「登録日」欄があり,その値は「2003年09月11日」となっています。私の記憶では,この日付は日本語情報の公開された日付です。つまり,日本語修正パッチ情報は,TechNETサイトの方が1日早いということになりますから,英語が苦手な人はまずこちらのサイトをチェックするとよいと思います。

 このTechNET公開情報も少し見ておきましょう。前回触れたように,マイクロソフトは今後は一般ユーザーを考慮したセキュリティ情報提供を行うと発表しています。ところが,この画面の「推奨する対応策」欄を見ると,セキュリティ情報公開はシステム管理者のためのものであると宣言されています。そして,「推奨する対応策」欄の下には,「絵で見るセキュリティ情報」欄という一般ユーザー向け(と思しき)ページへのリンクが張られています。客観的に見て,現在の情報提供には整合性がない印象を受けるのは私だけでしょうか。

サンプル・プログラムの機能と拡張のためのヒント

 今回のサンプル・プログラムはリスト1のようになっています。基本的には,前回のサンプル・プログラムを単純化しているにすぎません。前回のサンプル・プログラムを実行すれば,すべての修正パッチ情報が出力されてきます。今回のサンプル・プログラムは,各修正パッチに割り当てられているID番号を活用し,特定の修正パッチ情報のみを返してきます。例えば,ID番号は次のように使われています。

If ucase(oHelper_2.HotFixID) = "KB824146" And (oHelper_2.ServicePackInEffect <> "") And (oHelper_2.InstalledBy <> "") Then
strBody = strBody & "<tbody><tr><td bgColor = ""#00ff00"">" & oHelper_2.HotFixID & strRet
strBody = strBody & "<td bgColor = ""#00f800"">" & oHelper_2.Description & strRet
strBody = strBody & "<td bgColor = ""#000000"">" & strBlasterInfo & strRet
strBody = strBody & "<td bgColor = ""#00f000"">" & oHelper_2.ServicePackInEffect & strRet
strBody = strBody & "<td bgColor = ""#888888"">" & oHelper_2.InstalledBy & strRet
strFinal = strFinal & strBody & strRet
strBody = "" & strRet
strBlasterInfo = "" & strRet
End If

図4●2003年09月24日10時49分にサンプル・プログラムを実行し,「Click」欄をクリックした結果
 ucase(oHelper_2.HotFixID) = "KB824146"の"KB824146"部分を目的のID番号に変更すれば,対応する修正パッチ情報に簡単にアクセスできます。お時間のあるときに,前回サンプル・プログラムと今回のサンプル・プログラムを併用しながら,いろいろ試してみるとよいでしょう。ちなみに,今回(2003年09月24日10時49分)サンプル・プログラムを実行し,「Click」欄をクリックしてみると,図4[拡大表示]のような情報が返されます。

 ご覧のように,最初に公開された2003年09月11日から5日経過した09月16日も情報更新は続いています。(面倒ではあっても)現実的には,修正パッチのインストール後も定期的な閲覧が必要と考えてよいでしょう。

 今回は以上で終了です。次回またお会いいたしましょう。ごきげんよう!