treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Windows7インストール後IE11がインストールできない

IE11がインストール(アップグレード)できなくて苦労している方は結構ネット上にいらっしゃいますね。私はクリーンインストール後のもう一つの落とし穴だと思っています。
今日はInternet Explorer 11(IE11)がWindows7にインストールできない件についてご報告します。

舞台は

昨日の記事にあったLenovo H320でWindows7をいじったときのこと、何度インストールしてもIE11がインストール失敗となってしまいます。

blog.treedown.net

Wake on LANができるようになったのもつかの間、インストールを進めていくうちに突き当たった壁が、Internet Explorer 11がインストールできない、というものです。正確には「Internet Explorerのインストールが完了しませんでした。」というメッセージが表示されインストールに失敗する、というものです。

f:id:treedown:20160430221521p:plain
しかもこれを開始したのが三連休初日、週明けにはユーザが使い始めるPCなので時間が迫りくるプレッシャーの中、どうにか使えるようにしなくてはなりません。

解決策

まず解決策を絞り込んだのはログの記述からでした。「c:\Windows\IE11_main.log」にそのログがあります。IEのインストールに失敗すると失敗の原因はこのログファイルに記録されます。
図:ログファイルの図

f:id:treedown:20160430221508p:plain

ファイル画面下部にエラー表記があり、
ERROR:   Neutral package installation failed (exit code = 0x800f081e (2148468766)).
とあります。IE11をインストールするためのパッケージに問題があるという記述です。どのパッケージが問題アリかを絞り込むために再びログ画面上部を見ると、
Version Check for (KB2834140) of C:\Windows\System32\d3d11.dll: 6.1.7601.17514 >= 6.2.9200.16570 (False)
と記述があります。d3d11.dllに問題があるようです。
「Version Check for (KB2834140)」と記載があるのですが、このエラーで失敗したのちにデスクトップに生成される「Internet Explorer トラブルシューティング」というリンクファイルでジャンプする先、「https://support.microsoft.com/ja-jp/kb/2872074」に「必須の更新プログラムがインストールされているかどうかを確認する」という項目があります。ここのリンク「https://support.microsoft.com/ja-jp/kb/2847882」(Internet Explorer 11 用必須更新プログラム)で閲覧できるIE11をインストールするための前提条件(インストールされていることが前提条件となるKBパッチ)を確認していたら、なんとあるじゃないですか!KB2834140が!

早速KB2834140をインストールして、再度Internet Explorer 11のインストーラを動作させました。結構ドキドキしたものですが、あっさりとInternet Explorer 11がインストール完了、無事IE11が動作することを確認できました。Updateも実行できたので、これで対処は完了、といえます。
図:成功しました!の図

f:id:treedown:20160430221722p:plain
この反応を待っていた!

おまけ:IE11インストールに必要な前提KB

このKBがインストール済みでなければ、Internet Explorer 11のインストールには失敗します。今回は「Version Check for (KB2834140)」とKB2834140に問題があったようですが、このKB番号がいくつかあっていくつもパッケージ確認行がログに記録されています。
ファイル名にKB番号が含まれているのでファイル名で記載しておきます。

  • Windows6.1-KB947821-v34-x64.msu
  • Windows6.1-KB2533623-x64.msu
  • Windows6.1-KB2670838-x64.msu
  • Windows6.1-KB2729094-v2-x64.msu
  • Windows6.1-KB2731771-x64.msu
  • Windows6.1-KB2786081-x64.msu
  • Windows6.1-KB2834140-v2-x64.msu

今回対象だったのは、KB2834140なので「Windows6.1-KB2834140-v2-x64.msu」をインストールしたのち、Internet Explorer 11をインストールするとインストールは成功しました。

ログ内の記述に注目すると「False」になっている行のKBが問題あり、と切り分けてよさそうです。Windows Updateを特に意識せずに適用しているとほとんどがTrueになっているのですが、どうやらここ数か月内の話でKB2834140がFalseになることでInternet Explorer 11のインストールが完了しない、ということのようですね。

解決策に至った道のり

Internet ExplorerはWindows7のリカバリ直後ではInternet Explorer8になっている状況です。
Windows Updateでもダメ、オンラインインストーラである「IE11-Windows6.1.exe」(サイズ2029KBのファイル)をダウンロードして実行してもダメ、オフラインインストーラ「IE11-Windows6.1-x64-ja-jp.exe」をダウンロードして実行してもダメ、という具合です。こうなるとインストールソースの問題じゃなくて環境の問題だよね…というのが考えられたので、じゃあInternet Explorer8をいったん削除してみるかぁ、と削除してみたものの状況に変化なし。
Windows 7 用のシステム更新準備ツール (KB947821)でインストールが改善した事例があるようで、試してみるも改善なし、しかもこれ、適用にやけに時間がかかるのですね。
同じくInternet Explorer 11がインストールできないときによく実行されているらしい<https://support.microsoft.com/ja-jp/kb/958046>にアクセスして、Fixitを実行してみると、問題はあるらしい、以下のような画面に
図:Fixit実行後の画面

f:id:treedown:20160430221907p:plain
何か解決してくれたらしいけど、けども、肝心のIE11は入らないです。
を見ていると、
そのうちログを見ていると
WARNING: Checking version for C:\Program Files (x86)\Internet Explorer\iexplore.exe.  The file does not exist.
と記述される始末。あ、これiexplore.exeが存在していないからエラーになっているの?なんてことに。

経験と勘に頼ったトラブルシューティングになってしまった結果、やらなくてもいいことを次々と実行してしまう始末…。
「アップデートに関連する一時ファイルを消す」⇒「C:\Windows\SoftwareDistribution」配下をクリーンアップしてやり直すも改善せず、
「ハードディスクのエラーか?」と疑いはじめ、ディスクチェックをし始めてさらに時間を掛けてしまい、
システムファイルのクリーンアップでWindows Updateの関連ファイルをいったん削除、という記述をみつけて試してみましたが、そもそもディスクのクリーンアップを確認するとWindows Updateの記述も一時Windowsインストールファイルの記述もない、で、悩む…
もしかしてアップデート前提のインストールになっているからか?と思いオフラインインストーラを「/update-noオプション」つきで「IE11-Windows6.1-x64-ja-jp.exe /update-no」と実行してみるも、結果は同じ、と。

こういうところから時間を要してしまいました。

ログを見るのは大事、ってのが今回の教訓です。