今度はWindows 7のWindows Updateでトラブル──でも、解決策はあります!山市良のうぃんどうず日記(113:緊急特別編)

2017年12月4日ごろから、Windows 7で「Windows Update」を実行できないというトラブルに遭遇しているユーザーが少なからずいるようです。Microsoftによる公式なアナウンスや回避策は今のところないようですが、取り急ぎ、問題を解消できる可能性がある方法を紹介します。

» 2017年12月06日 05時00分 公開
[山市良テクニカルライター]
「山市良のうぃんどうず日記」のインデックス

山市良のうぃんどうず日記

Windows Updateが突然のストライキを?

 この問題は、Windows 7(および後で説明する影響する可能性のあるバージョン)の全てに影響するわけではありません。問題なくWindows Updateを実行できるのであれば、それでOKです。この問題、2017年12月5日までに自動的に解消されたとの話もあるようですが(既に自分で修正してしまったため確認していません)、もしこの問題に悩んでいるのなら参考にしてみてください。また、今後、同様の問題に遭遇したときの参考になるかもしれません。


 2017年12月4日(日本時間)ごろから、SNSなどで「Windows 7のWindows Updateが失敗する」というつぶやきを目にするようになりました。

 筆者が検証用に維持しているWindows 7(x86版)のノートPCで「Windows Update」コントロールパネル(wuapp)の「更新プログラムの確認」ボタンをクリックしてみたところ、確かに以下のようなメッセージが瞬時に表示されました(画面1)。

現在サービスが実行されていないため、Windows Updateで更新プログラムを確認できません。コンピュータの再起動が必要な可能性があります。


画面1 画面1 Windows 7で遭遇した問題のエラー。エラー番号「0x80248015」の失敗を報告する画面の場合もあるようです

 「Windows Updateサービス(wuauserv)」は実行中になっていますし、あまりにも瞬時に表示されるので、何かおかしいと思いました。また、「更新履歴の表示」を確認すると、真っ白の状態(「OK」ボタンだけ)で、これもおかしい(画面2)。イベントログを確認すると、イベントID 25「更新プログラムを確認できませんでした。エラーは0x80248015」と記録されています。

画面2 画面2 「更新履歴の表示」は真っ白

犯人は「%Windir%\SoftwareDistribution\WuRedir」にいるらしい

 Windows Updateのログファイル「%Windir%\WindowsUpdate.log」(%Windir%は通常「C:\Windows」フォルダ)を確認すると、「DataStore FATAL: Service 7971F918-A847……requested, but it is explred」と大量に記録されていました。

 この数字の羅列を「%Windir%\SoftwareDistribution」ディレクトリ内で探してみると、「%Windir%\SoftwareDistribution\WuRedir\7971F918-A847……」にあるキャビネットファイル(wuredir.cabなど)が見つかりました(画面3)。

画面3 画面3 「WindowsUpdate.log」に記録されていた大量の有効期限切れエラー

 どうやら、ここにあるキャビネットファイルの有効期限か、何かの日付に問題があるようで、12月4日ごろに問題が発動したように見えます。ちなみに、Windows 10ではログの記録方法が変更されたため「%Windir%\WindowsUpdate.log」は役に立ちません。しかし、Windows 8.1以前なら今回のように役に立つことがあります。

犯人ごとディレクトリ削除で解消

 「WuRedir」(およびこれに関係する「AuthCabs」)はWindows Updateエージェントのコンポーネントで、Windows Updateのスキャンを開始する前にチェックされます。そして、必要に応じて自動更新されます。過去にも問題のあるファイルが配布されて、Windows Updateに支障をきたしたことが何度かあったと記憶しています。

 2017年12月5日には問題のあるコンポーネントがWindows Updateエージェントのチェック時に配布されることはなくなっているようです。つまり、「%Windir%\SoftwareDistribution\」をリセットすることで、問題のないWuRedirが再取得され、問題が解消するはずです(画面4

画面4 画面4 「%Windir%\SoftwareDistribution」ディレクトリのリセットで問題は解消

 「%Windir%\SoftwareDistribution」は、Windows Updateエージェントとダウンロードファイルが格納されるディレクトリであり、存在しない場合は再作成されます。

 具体的な操作手順は、以下の通りです。

「%Windir%\SoftwareDistribution」ディレクトリのリセット手順

  • 手順(1):スタートメニューから「すべてのプログラム」→「アクセサリ」を開き、コマンドプロンプト右クリックして、コンテキストメニューから「管理者として実行」を選択します。
  • 手順(2):「管理者:コマンドプロンプト」ウィンドウで、次のコマンドを実行します。
C:\Windows\System32> net stop wuauserv
C:\Windows\System32> ren %Windir%\SoftwareDistribution SoftwareDistribution.old
C:\Windows\System32> rd %Windir%\SoftwareDistribution.old /S
C:\WINDOWS\SoftWareDistribution.old、よろしいですか(Y/N)? y
C:\Windows\System32> wuauclt /detectnow
C:\Windows\System32> wuapp

  • 手順(3):「Windows Update」コントロールパネルが開くので、問題が解消されたことを確認します。状況が変わらない場合は、「設定の変更」で別のオプションに切り替えてみてください。

 Windows 7と同じバージョンに相当するWindows Server 2008 R2も、同様の問題が発生する可能性があります。Windows Server Update Services(WSUS)の管理下でも発生するのかどうかは確認していません。

 Windows Vistaは既に更新サポートが終了していますが、同じ問題が発生することを確認しました。そのため、Windows Server 2008でも同じ問題が発生する可能性があります。

 なお、この回避策は筆者が実施したものであって、何ら保障があるものではありません。また、Windows Updateコントロールパネルの「履歴情報の表示」にあった、過去の履歴はクリアされることにご注意ください。

 ネットを検索すると「12月3日に日付を戻してみる」方法は、もうお勧めしません(「3月12日」というような、おかしな情報も出回っているようです)。1日くらい一時的に戻すなら大丈夫かもしれませんが、あまりにも本当の日時とずれてしまうと、また別の問題が発生するかもしれません。

最新情報(2017年12月7日追記)

 この問題に関して、Microsoftから公式なアナウンスがありました。

 問題が継続している場合は、このアナウンスで紹介されている全ての操作をしなくても、筆者が本稿で紹介したシンプルな手順で解消できるはずです(Windows Updateは事実上機能していないため、wuauservサービス以外にSoftwareDistributionのリネームをブロックしているサービスはないはずだからです)。


筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。