更新履歴 [ 全て表示戻す ]
2019.06.30: Windows10関連で補足追記
2019.06.30: Windows10関連で補足追記
2017.12.04:「コマンド実行後の注意1」に「この場合の原因と対処方法」追加
2016.11.29: 初出
過去にこのサイト内で 過去何度か紹介している「Windows Updateが正常に更新できなくなった場合」に効果のあるコマンドの紹介です。
Windows 10 / 8.1 / 8 / 7 / Vista で利用可能です。
2019.06追記:
現在では、Windows 10 ではこの手順はほぼ不要。これを試すのは後回しでOK。
- 「Windows Updateが始まらない」「Windows Updateのダウンロードやインストールが途中で失敗してしまう」「何度も失敗を繰り返してしまう」という場合に効果があります。
- このページで紹介するコマンドは Windows Update クライアントの情報をクリアにする手順 – Japan WSUS Support Team Blog に掲載されているものをベースにしています。
はじめに
以下、先にコマンドの紹介を行いますが、ページ後半の注意事項を読んでから実行してください。
正常に実行できなかった場合、Windows の調子はさらに悪くなってしまいます。以下コマンドの実行は自己責任でお願いします。
コマンド
net stop usosvc
net stop dosvc
rem Windows 10の場合青部分も必要
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr0.dat"
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr1.dat"
net start msiserver
net start bits
net start cryptSvc
net start wuauserv
net start dosvc
net start usosvc
rem Windows 10の場合青部分も必要
net stop dosvc
rem Windows 10の場合青部分も必要
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr0.dat"
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr1.dat"
net start msiserver
net start bits
net start cryptSvc
net start wuauserv
net start dosvc
net start usosvc
rem Windows 10の場合青部分も必要
- コマンド実行後は「PC再起動」または「Windows Update」のどちらかを必ず実行します。Windows Updateする場合は、コマンド実行後5~10分ほど待ち、CPUやHDDの負荷が落ち着いてから行います。
コマンドプロンプトの起動方法
各OS、各コマンドともに、管理者権限のコマンドプロンプトが必要です。
コマンドプロンプト(管理者)の起動方法
- Windows 10 / 8.1 の場合
▲クリックで拡大 - Windows 7 / Vista の場合
▲クリックで拡大 - 上記のコマンドはコピペしてbat ファイルを組んでもOKです。
▲クリックで拡大
※bat化する場合は、最後の行に「pause」というコマンドを入れ、入力結果を確認できるようにしておきましょう。
以下、コマンド実行時、実行後の注意事項です。
スポンサー リンク
OS別の注意事項
- Windows10の場合注意
- 青色部分のコマンドが必要です。
- 2019年現在、このコマンドが必要なケースは殆どなくなりました。この手順を試すのは後回しにしてもOKかと思います。
- コマンド実行後、5~15分くらいPCが非常に重い状態になります。
Windows 10 の SoftwareDistribution フォルダは10GB以上あるため、再作成に非常に大きな負荷と時間が必要になっています。 - PCの状態によっては、CPUやHDD負荷が高い状態が1時間以上続くケースもあります。このコマンド実行直後のWindows Update には2~3時間かかってしまうケースも発生します。(※必ず発生するものではない)
- 短時間でこのコマンドを繰り返すと、システムに深刻なエラーが発生する場合があります。
- Windows10の場合、このコマンドは最終手段と考え、多用しないようにしましょう。
- Windows 7/8.1の注意点
- 基本的に、次項「コマンド実行後の注意点」のみに注意していればOKです。
ただし Windows 7/8.1の場合、2016年10月以降のロールアッププログラムでは、同様の問題が発生するようになるかもしれません。(2017年6月、この問題は解消された)
コマンド実行後の注意事項
- コマンド実行後の注意1
- 「SoftwareDistributionフォルダ」と「catroot2.oldフォルダ」の両方が正常に削除(リネーム)できている事を必ず確認してください。
(エラーメッセージが出ていなければOK)
- 正常に削除できていない例
▲クリックで拡大
このような状態 (どちらか一方 (主にcatroot2のみ) を削除した状態) でWindows Update や PC再起動を行うと、Windows が正常に作動しなくなります。 - この場合の原因と対処方法
- コマンドプロンプトを管理者権限で実行していなかった
- リネーム後のファイルが既に存在している
- Windows Updateのサービスが完全に終了していなかった
- コマンドプロンプトを管理者権限で起動し、削除用コマンドを先に実行し、改めて (コマンドプロンプトを管理者権限で起動した状態で) 入力ミスなしに最初に紹介したコマンドを実行すればOKです。
- それでもエラーが出る場合は、Windows Update サービスを止めた状態でエクスプローラーを開いて手動で SoftwareDistribution と catroot2 フォルダの中身を削除します。
- 正常に削除できていない例
- Windows Updateが無事に終了した後は、「SoftwareDistribution.oldフォルダ」と「catroot2.old フォルダ」を削除します。
- 削除コマンド
rmdir %systemroot%\softwaredistribution.old /q /s※これらを削除しなかった場合、このコマンドは2度目以降の実行時に正常に処理されません。
rmdir %systemroot%\System32\catroot2.old /q /s
- 「SoftwareDistributionフォルダ」と「catroot2.oldフォルダ」の両方が正常に削除(リネーム)できている事を必ず確認してください。
- コマンド実行後の注意2
削除するファイルやフォルダの解説
上記のコマンドで削除しているフォルダやファイルの説明です。
- catroot2フォルダ
・・・・更新プログラムを確認するための署名ファイルが保存されたフォルダ。 - SoftwareDistributionフォルダ
・・・・Windows Update 構成ファイルが保存されている。過去にダウンロード、もしくは現在ダウンロード中の更新プログラムが保存されたフォルダ。 - qmgr0.dat、qmgr1.datファイル
・・・・ダウンロード中の更新プログラムを管理しているファイル。
ダウンロードに失敗した更新プログラムが BITS キューから消えずに残ってしまった場合、このファイルの削除が必要です。
という事で、なにかしらの原因で これらのフォルダやファイルに不正なデータが残ってしまった場合に、それらを削除することでWindows Update を再び正常作動するよう試みる、というのが紹介したコマンドの仕組みです。
このコマンドでは効果が出ないケース
- レジストリに問題が発生している場合
- Windowsが起動する場合
レジストリの問題で Windows Update ができない場合は、Windows 標準のトラブルシューティングツールの方が高い効果が得られます。
▲クリックで拡大
Windows10の「Windows Updateのトラブルシューティングツール」はここ。
- 「コントロールパネル」>「トラブルシューティング」からこの画面にアクセスできます。
- 7や8.1の場合も同様の手順です。
- Windowsが起動しない場合
Windows が起動しない場合は こちら (10/8.1の場合/ 7/Vistaの場合
- Windowsが起動する場合
- Windows のシステムそのものが調子悪くなっている場合
- 多くの場合、以下のコマンドでなおります。
- Windows 10/8.1の場合は
「DISM /Online /Cleanup-image /Restorehealth」
Windows 7の場合は「sfc /scannow」
- Windows 7/8.1 の Windows Update Client が古い場合の問題
この場合はWindows Update Clientを更新します。
この問題は2017年6月に解消しました。- サイト内関連ページ
Windows7 SP1の Windows Update Clientの最新バージョン
Windows8.1 の Windows Update Clientの最新バージョン
- Windows 10 バージョン1607 (Anniversary Update) の 更新プログラムのダウンロードが一時的に止まる、時間がかかる問題
- Windows10が正常な場合でも発生します。
現状では対処方法はないと思われます。 (チェック期間: 2016.8月~2017.10月時点) - 手元のPC、知人PCを見る限り、Windows10 バージョン1703 以降ではこの問題は発生しない(問題視するほど酷くない)と思われます (追記執筆時 v1809まで確認)
- Windows10が正常な場合でも発生します。
その他のメモ
「wuauclt /detectnow」は WSUS 用のコマンド。一般的な Windows の Windows Update には関係ない。 また、WSUS 環境であっても、Windows 10 では効果はない。