Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows Updateコンポーネントをリセットして更新エラーを解決する方法【完全ガイド】

Windows Updateサービスが正常に動作せず、更新プログラムのダウンロードやインストールができない場合、最も簡単かつ効果的な解決策は、Windows Updateの設定を初期状態に戻す(リセットする)ことです。本記事では、Windows Updateエージェントおよび関連サービスの構成をリセットする具体的な手順を詳しく解説します。

トラブルシューティングツールで更新の問題を自動修復する

Windows Updateの設定をリセットする前に、まずはより簡単な方法として、Windowsに組み込まれているWindows Updateトラブルシューティングツールを試してみることを強くおすすめします。このツールは、更新サービスの問題を自動的に検出・修復してくれます。

Windows 10および11では、設定アプリに標準で搭載されています。それ以前のバージョンのWindowsでは、Microsoftから手動でダウンロードする必要があります。

  • Windows 11:「設定」→「システム」→「トラブルシューティング」→「その他のトラブルシューティングツール」→「Windows Update」を選択します。
  • Windows 10:診断ツール(wu10.diagcab)をダウンロードして実行するか、「スタート」→「設定」→「更新とセキュリティ」→「トラブルシューティング」→「追加のトラブルシューティングツール」→「Windows Update」から起動できます。
    トラブルシューティングツールには、URIコマンド ms-settings:troubleshoot を使って素早くアクセスすることも可能です。
  • Windows 7 / Windows 8.1WindowsUpdate.diagcab をダウンロードして実行します。

ツールを実行すると、システムのスキャンが行われ、Windows Updateおよび関連コンポーネントのエラーが自動的に修復されます。

筆者の環境では、Windows Updateデータベースの破損が検出され、自動的に修復されました。その後、パソコンを再起動して更新プログラムのスキャンを試してください。それでも更新プログラムがダウンロードまたはインストールできない場合は、次の手順に進みましょう。

PowerShellを使ってWindows Updateクライアントをリセットする

PowerShellのPSWindowsUpdateモジュールを使用すれば、Windows Updateエージェントとサービスをワンコマンドでリセットできます。

まず、PSGalleryからモジュールをインストールします:

Install-Module -Name PSWindowsUpdate

PowerShellスクリプトの実行を許可します:

Set-ExecutionPolicy –ExecutionPolicy RemoteSigned -force

次のコマンドでリセットを実行します:

Reset-WUComponents –verbose

このコマンドを実行すると、関連サービスの停止、DLLの再登録、C:\Windows\SoftwareDistributionフォルダのクリーンアップなどが一括して行われ、詳細なログも出力されます。

処理の主な流れは以下のとおりです:

  1. BITS、wuauserv、appidsvc、cryptsvcなどの関連サービスを停止
  2. qmgr*.datファイルの削除
  3. SoftwareDistributionフォルダとCatroot2フォルダのバックアップ(.bakにリネーム)
  4. 古いWindowsUpdate.logの削除
  5. BITSおよびWindows Updateサービスのリセット
  6. atl.dll、urlmon.dll、mshtml.dllなど、BITSとWindows Updateに関連するDLLの再登録
  7. Winsockのリセット(netsh winsock reset)
  8. プロキシ設定のリセット(netsh winhttp reset proxy)
  9. 停止していた各サービスの再開
  10. wuauclt /resetauthorization /detectnow の実行

リセット完了後、設定アプリから更新プログラムを確認するか、PowerShellで利用可能な更新をチェックします:

Get-WUList

Reset Windows Update Toolを使う方法

Reset Windows Update Toolも、Windows Updateの設定をリセットできる便利な無料ツールです。かつてTechNetで公開されていたスクリプトで、現在はGitHub上でメンテナンスされています(Script-Reset-Windows-Update-Tool)。

ダウンロードページでは、コンパイル済みのwureset.exe(C++版)とバッチスクリプト版が提供されていますが、ここではcmdスクリプト版の使い方を紹介します。

  1. ResetWUEng.zipをダウンロードして展開します。
  2. ResetWUEng.cmdを管理者として実行します。
  3. スクリプトがOSのバージョンを自動検出し(例:Windows 10)、18個の選択肢を表示します。中にはWUエージェントのリセット以外にも役立つ機能があります(chkdskによるディスクチェック、DISMによるWindowsイメージの修復、Winsockのリセット、一時ファイルの削除など)。
  4. Windows Updateをリセットするだけなら、通常は「2 – Resets the Windows Update Components」を選択すれば十分です。「2」と入力してEnterキーを押します。
  5. スクリプトは、コマンドラインからの手動リセットで後述するすべての操作を自動的に実行します。実際に行われる処理は、ResetWUEng.cmdをテキストエディタで開いて内容を確認できます。たとえばオプション2は :components 関数を呼び出しています。
  6. スクリプトの完了後、パソコンを再起動し、新しい更新プログラムを確認します。

このResetWUEng.cmdスクリプトは汎用性が高く、Windows XPからWindows 11までのすべてのバージョンに対応しています。

コマンドプロンプトでWindows Updateの設定をリセットする

Windows Updateエージェントとサービスの構成をリセットする作業は、いくつかのステップに分かれます。ここで説明する操作はすべて、管理者権限で起動したコマンドプロンプトで実行します。なお、すべてのコマンドをまとめたbatファイルも配布しています。

このスクリプトを使えば、Windows Updateの構成を完全にリセットし、ローカルの更新キャッシュを消去できます。Windows 11/10/8.1/7のワークステーションはもちろん、Windows Server 2022/2019/2016/2012 R2/2008 R2でも使用可能です。更新プログラムのダウンロードが止まってしまった場合や、インストール中にエラーが発生する場合など、典型的なWindows Updateエラーの大半を解消できます。

注意:事前に、ドメインまたはローカルのグループポリシーによってWindows Updateの設定が固定されていないか確認してください。gpresultツールやrsop.mscを使って適用されているGPO設定を確認できます。

それでは、スクリプトが実行する処理をステップごとに見ていきましょう。

1. 関連サービスを停止する

Windows Update、BITS、暗号化サービスなどを停止します:

net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
taskkill /im wuauclt.exe /f

2. qmgr*.datファイルを削除する

%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\ フォルダからサービスファイルを削除します:

Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"

3. システムフォルダの名前を変更する

構成ファイルと更新キャッシュが保存されているシステムフォルダの名前を変更します(必要に応じてバックアップとして残しておけます)。更新サービス(wuauserv)の再起動後、これらのフォルダは自動的に再作成されます:

Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%\system32\catroot2 catroot2.bak

4. 古いwindowsupdate.logを削除する

del /f /s /q %windir%\windowsupdate.log

5. BITSとWindows Updateサービスの権限をリセットする

サービスのセキュリティ記述子が変更されていた場合に備えて、既定の権限に戻します:

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)
sc.exe sdset cryptsvc D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)
sc.exe sdset trustedinstaller D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;WD)

6. 関連するDLLファイルを再登録する

BITSとWindows Updateに関連するシステムDLLを再登録します:

cd /d %windir%\system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll

7. Winsock設定をリセットする

netsh winsock reset

8. システムプロキシ設定をリセットする

netsh winhttp reset proxy

9. (任意)WSUSサーバーとの接続情報を削除する

ローカルのWSUSサーバーを使用している環境では、レジストリキー HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate から以下の値を削除することで、WSUSサーバーへの現在の登録情報をリセットできます:

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v TargetGroup /f
REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUServer /f
REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /v WUStatusServer /f

10. 停止していたサービスを再開する

sc.exe config wuauserv start= auto
sc.exe config bits start= delayed-auto
sc.exe config cryptsvc start= auto
sc.exe config TrustedInstaller start= demand
sc.exe config DcomLaunch start= auto
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc

11. (任意)Windows Updateエージェント(WUA)の再インストール

状況によっては、Windows Updateエージェント(WUA)のインストールまたは再インストールが必要になることがあります。現在のWuaueng.dllのバージョンはPowerShellで確認できます:

((Get-Item $Env:windir\system32\Wuaueng.dll).VersionInfo).ProductVersion

最新版のWindows Updateエージェントは、MicrosoftサポートKB949104からダウンロードできます。

  • Windows 8.1 – 7.9.9600
  • Windows 8 – 7.8.9200.16693
  • Windows 7 – 7.6.7600.256

Windows Updateエージェントを強制的に再インストールするコマンドは以下のとおりです:

Windows 7 x86: WindowsUpdateAgent-7.6-x86.exe /quiet /norestart /wuforce
Windows 7 x64: WindowsUpdateAgent-7.6-x64.exe /quiet /norestart /wuforce

リセット後の確認作業

以上の手順が完了したら、パソコンを再起動し、Windows UpdateまたはWSUSとの同期を実行します:

wuauclt /resetauthorization /detectnow

その後、Windows Updateを開き、更新プログラムの確認・ダウンロード・インストール時にエラーが発生しないことを確認してください。

上記のすべてのコマンドを含む reset_windows_update_agent.bat スクリプトは、reset_windows_update_agent.zip からダウンロードできます(オプション9と11は任意のためスクリプトには含まれていません)。ダウンロード後に展開し、管理者として実行してください。

更新プログラムが正常にダウンロード・インストールされるようになったら、バックアップ用のフォルダは削除しても構いません:

Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%\system32\catroot2 catroot2.bak

万が一、これらの方法を試しても問題が解決しない場合は、Microsoft Update Catalogからお使いのWindowsバージョン向けの最新の累積更新プログラムを手動でダウンロードしてインストールしてみてください。

  1. Windows 10 / 11 でドライバーエラーを修正する5つの効果的な方法

    破損したWindowsドライバーは、PC全体の動作を止めてしまうことがあります。ブルースクリーン(BSOD)エラー、マウスやキーボードの不具合、さらにはネットワーク接続の問題まで、ドライバーのトラブルはシステム全体に悪影響を及ぼしかねません。 そこで本記事では、Windowsのドライバー関連の問題を解消するために、特に効果的な対処法をいくつか紹介します。それでは早速見ていきましょう。 Windows PCでドライバーエラーを修正する方法 Windowsドライバーの破損や不具合を解決する方法は複数あります。それぞれの手順を順番に確認していきましょう。 1. Windowsトラブルシューティングツ

  2. Windows 11/10/8/7でレジストリエラーを修正する方法【初心者向け完全ガイド】

    パソコンでレジストリエラーが発生していませんか?Windowsのレジストリはシステムの中でも最も重要な部分とされており、わずかなエラーや軽微な感染が原因で、システム全体が動作しなくなることもあります。この記事では、Windowsレジストリの基本知識と、Windows 11、10、8、7におけるレジストリエラーの修正方法について詳しく解説します。 Windowsレジストリとは? レジストリとは、Microsoft Windowsオペレーティングシステム上で各種設定や構成情報を階層構造で保存するデータベースです。ハードウェアデバイス、ソフトウェアプログラム、ユーザーの環境設定、OSの構成など、シス