[System Environment] | |||||||||||||
修正プログラムのインストールの順番を調査する
|
|||||||||||||
|
解説 |
マイクロソフトは、Windows OSなどに脆弱性や不具合が見つかると、これを修正するための「更新プログラム(パッチ)」を公開している。このパッチを適用(インストール)することで、脆弱性や不具合が修正されるのだが、場合によってはパッチを適用したことによって新たな不具合が発生することがある。
このような場合、アンインストールが可能なパッチならば、[コントロール パネル]−[アプリケーションの追加と削除]/[プログラムの追加と削除]を利用してアインストールすれば、パッチ適用前の状態に戻り、発生した不具合を回避できる。もちろん、パッチをアンイストールすると、脆弱性や元の不具合は復活することになるので注意が必要だ。
問題は、パッチのアンイストールの際に適用した逆順で1つずつアンイストールしないと、システム・ファイルの不整合が起こり、システムが不安定になる可能性があることだ。
アンインストールの順番に注意
例えば、2008年7月に提供されたDNSに関する脆弱性を解消するMS08-037(DNSの脆弱性により、なりすましが行われる)は、アンインストールに注意が必要だ。MS08-037では、DNSサーバ向けとDNSクライアント向けのそれぞれに対してパッチが提供されており、両者で同じバイナリ(DLLファイルなど)を置き換えるものになっていることから、アンインストールする際にはバイナリが正しく元の状態に戻るように、適用した逆順でアンインストールする必要がある。
DNSサーバ向け(KB951746)→DNSクライアント向け(KB951748)の順番で適用した場合は、DNSサーバ向け(KB951746)だけをアンインストールしたい場合でも、DNSクライアント向け(KB951748)→DNSサーバ向け(KB951746)の順でアンインストールした後、DNSクライアント向け(KB951748)を再適用するという手順を行う。ここで、DNSサーバ向け(KB951746)のみをアンインストールしてしまうと、DNSクライアント向け(KB951748)がアンインストールできなくなったり、DNSサーバ向け(KB951746)しかアンインストールしていないのにもかかわらず、DNSクライアントの脆弱性も復活(脆弱性を持つ古いバイナリに戻る)したりしてしまう。
この例は少々特殊だが、異なるパッチで同じバイナリを置き換えるような場合は、同様のことが起こる可能性がある。サービスパックのインストール前に適用したパッチをアンインストールしてしまうと、この例と同じような状況になる。
このような危険な状況を避けるため、[アプリケーションの追加と削除]/[プログラムの追加と削除]でパッチをアンインストール(削除)しようとすると、そのパッチを適用した後にインストールしたパッチやアプリケーションの一覧が表示され、「削除するとプログラムが正しく作動しなくなる可能性がある」という警告ダイアログが表示される。ただし、適用した順番で一覧が作成されているわけではないので、何らかの方法で適用順を把握する必要がある。そこで、ここではパッチの適用順をログ・ファイルから抽出する方法を紹介する。
[プログラムの追加と削除]アプレットの画面 | ||||||
[プログラムの追加と削除]アプレットを開くと、適用済みのパッチ一覧を取得することができる。インストール日を見ることで適用日の確認はできるが時間までは分からないので、正確な適用順を得ることができない。 | ||||||
|
警告ダイアログの画面 |
削除対象のパッチの後に、さらに別のパッチやアプリケーションをインストールしていると、このような警告ダイアログが表示される。この一覧に表示されているのは、対象となるパッチの後でインストールされたすべてのプログラムである。そのため、パッチとは無関係な項目も多く表示されている。パッチをアンインストールする際、前述のような依存関係によって不具合が発生する危険性が高いのは、セキュリティ更新プログラムとサービスパックなので、この両者を、適用したときとは逆順でアンインストールしていけばよい。 |
操作方法 |
パッチを適用すると、パッチごとに自動的にログ・ファイルが作成される。このログ・ファイルのタイムスタンプを調べれば、パッチの適用時刻を把握できるわけだ。具体的には、コマンド・プロンプトを開き、以下のコマンドを実行すれば、システム・ドライブ(通常はC:ドライブ)のルートに「TimeLine.log」というファイルが作成される(以下のコマンドをバッチ・ファイルとして実行すると入力ミスなどが防げるだろう)。
C:\>dir %windir%\*.log /o:d | findstr
/i /r /c:q......\.log /c:kb......\.log /c:q......uninst\.log /c:kb......uninst\.log > %systemdrive%\TimeLine.log |
「TimeLine.log」は、以下のように適用日時とファイル・サイズ、ログ・ファイルの名前が並んだテキスト・ファイルとなっている。この例では、最後のKB950749.logが最も新しく適用したパッチということになる。つまり、一覧の最後から順番に目的のパッチまでアンインストールしていけば、安全にアンインストールができるというわけだ。ちなみに、KB950749といった番号は各パッチに付けられた識別番号で、[プログラムの追加と削除]アプレットなどでも、「Windows XP セキュリティ更新 (KB950749)」といったように、この番号によってパッチが識別できるようになっている。
|
|
ログ・ファイルの一覧を作成するコマンドの実行例 |
この記事と関連性の高い別の記事
- セキュリティ・パッチの3つのレベル(TIPS)
- UACのダイアログが頻繁に表示されたりWindows Defenderが起動できなくなった場合の対処方法(KB3004394パッチ編)(TIPS)
- Windowsで修正プログラムのアンインストール情報を削除してディスクの空き容量を増やす(TIPS)
- マイクロソフトのパッチ・ファイル名の命名規則(TIPS)
- セキュリティ・パッチを適用する(1)(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|