更新履歴 [ 全て表示戻す ]
2017.07.13: Microsoftはツール配布を終了した模様

2016.11.29: 初出


Microsoftの「Windows Update のコンポーネントをリセットする方法」というページで紹介されている情報の中から、コマンドプロンプトの部分だけを抜粋しまとめたページです。
※2017年6月頃にツールの配布は終了した模様です。Windows Update のコンポーネントをリセットするには、以下の手順を実行します。

はじめに

以下、先にコマンドの紹介を行いますが、その下にある注意事項を読んでから実行してください。
正常に実行できなかった場合、Windows の調子はさらに悪くなってしまいます。以下コマンドの実行は自己責任でお願いします。

コマンド

 ※赤文字部分を含めて実行する場合、より強力なコマンドになります。
net stop usosvc
net stop dosvc

rem Windows 10の場合青部分も必要
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr0.dat"
del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr1.dat"
rem 赤字部分は超強力なコマンド。初回実行時はこの行共に削除する。
rem 効果が無かった場合、赤字部分を含めて改めて実行する。
rem 更新履歴が初期化される等の副作用がある。
Ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
Ren %systemroot%\system32\catroot2 catroot2.old
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
cd /d %windir%\system32
regsvr32.exe atl.dll
regsvr32.exe urlmon.dll
regsvr32.exe mshtml.dll
regsvr32.exe shdocvw.dll
regsvr32.exe browseui.dll
regsvr32.exe jscript.dll
regsvr32.exe vbscript.dll
regsvr32.exe scrrun.dll
regsvr32.exe msxml.dll
regsvr32.exe msxml3.dll
regsvr32.exe msxml6.dll
regsvr32.exe actxprxy.dll
regsvr32.exe softpub.dll
regsvr32.exe wintrust.dll
regsvr32.exe dssenh.dll
regsvr32.exe rsaenh.dll
regsvr32.exe gpkcsp.dll
regsvr32.exe sccbase.dll
regsvr32.exe slbcsp.dll
regsvr32.exe cryptdlg.dll
regsvr32.exe oleaut32.dll
regsvr32.exe ole32.dll
regsvr32.exe shell32.dll
regsvr32.exe initpki.dll
regsvr32.exe wuapi.dll
regsvr32.exe wuaueng.dll
regsvr32.exe wuaueng1.dll
regsvr32.exe wucltui.dll
regsvr32.exe wups.dll
regsvr32.exe wups2.dll
regsvr32.exe wuweb.dll
regsvr32.exe qmgr.dll
regsvr32.exe qmgrprxy.dll
regsvr32.exe wucltux.dll
regsvr32.exe muweb.dll
regsvr32.exe wuwebv.dll
netsh winsock reset
netsh winhttp reset proxy
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
rem Windows10 の場合、「青文字」の部分も必要
net start dosvc
net start usosvc

rem VISTA の場合のみ以下の「緑文字」の部分も必要
bitsadmin.exe /reset /allusers

コマンドプロンプトの起動方法

各OS、各コマンドともに、管理者権限のコマンドプロンプトが必要です。

コマンドプロンプト(管理者)の起動方法

 

以下、コマンド実行時および実行後の注意事項です。

スポンサー リンク

OS別の注意点

  • Windows10の場合注意
    • 青色部分のコマンドが必要です。
    • 赤字部分の強力なコマンドを実行すると、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月以降のロールアッププログラムでは、同様の問題が発生するようになるかもしれません。

コマンド実行後の注意点

  • 赤文字部分のコマンド実行後の注意
    • 「SoftwareDistributionフォルダ」と「catroot2.oldフォルダ」の両方が正常に削除(リネーム)できている事を必ず確認してください。
      (エラーメッセージが出ていなければOK)
      • 正常に削除できていない例
        エラーメッセージが出ている例
        ▲クリックで拡大
        このような状態でWindows Update や PC再起動を行うと、Windows が正常に作動しなくなります。
    • Windows Updateが無事に終了した場合、「SoftwareDistribution.oldフォルダ」と「catroot2.old フォルダ」を削除します。
    • 削除コマンド
      rmdir %systemroot%\softwaredistribution.old /q /s
      rmdir %systemroot%\System32\catroot2.old /q /s
    • これらを削除しなかった場合、二度目以降、コマンドは正常に実行されません。
    • Windows Updateの履歴はすべて消えます。過去に非表示にしていた更新プログラムも全て復活します。
    • 実行後の更新履歴の画面
      Windows Updateの履歴なども、全てリセット
      ▲クリックで拡大
      本来はリセットしなくても良い部分までリセットされます。ある程度の覚悟を持って実行しましょう。
  • regsvr32コマンド実行中/bat実行中の注意
    • bat実行中は、regsvr32コマンドの数だけ「OK」をクリックする必要があります。
      また、いくつかのコマンドはエラーが出ます。
      bat内のいくつかのコマンドはエラーが出ます
      ▲クリックで拡大
      気にせずOKをクリックして行きます。
    • 確認ダイアログを出したくない場合は「regsvr32.exe」を「regsvr32.exe /s」に置き換えて下さい。
  • バッチファイルとして実行する場合の補足
    • コマンドの実行内容を画面に出したくない場合は、先頭行に「@ECHO OFF」をつける事で、各メッセージを非表示に出来ます。

削除するファイルやフォルダの解説

上記のコマンドで削除しているフォルダやファイルの説明です。

  • catroot2フォルダ
    ・・・・更新プログラムを確認するための署名ファイルが保存されたフォルダ。
  • SoftwareDistributionフォルダ
    ・・・・Windows Update 構成ファイルが保存されている。過去にダウンロード、もしくは現在ダウンロード中の更新プログラムが保存されたフォルダ。
  • qmgr0.dat、qmgr1.datファイル
    ・・・・ダウンロード中の更新プログラムを管理しているファイル。
    ダウンロードに失敗した更新プログラムが BITS キューから消えずに残ってしまった場合、このファイルの削除が必要です。

という事で、なにかしらの原因で これらのフォルダやファイルに不正なデータが残ってしまった場合に、それらを削除することでWindows Update を再び正常作動するよう試みる、というのが紹介したコマンドの仕組みです。

このコマンドでは効果が出ないケース

  • レジストリに問題が発生している場合
    • Windowsが起動する場合
      レジストリの問題で Windows Update ができない場合は、Windows 標準のトラブルシューティングツールの方が高い効果が得られます。
      bat内のいくつかのコマンドはエラーが出ます
      ▲クリックで拡大
      Windows10の「Windows Updateのトラブルシューティングツール」はここ。
      • 「コントロールパネル」>「トラブルシューティング」からこの画面にアクセスできます。
      • 7や8.1の場合も同様の手順です。
    • Windowsが起動しない場合
      Windows が起動しない場合は こちら (10/8.1の場合7/Vistaの場合)
  • Windows のシステムそのものが調子悪くなっている場合
    • 多くの場合、以下のコマンドでなおります。
    • Windows 10/8.1の場合
      「DISM /Online /Cleanup-image /Restorehealth」
      Windows 7の場合
      「sfc /scannow」
  • Windows 7/8.1 の Windows Update Client が古い場合の問題
  • Windows 10 Anniversary Update の 更新プログラムのダウンロードが一時的に止まる、時間がかかる問題
    • Windows10が正常な場合でも発生します。
      現状 (2016.11月時点) では対処方法はないと思われます。

サイト内関連ページ