【完全ガイド】Windows Updateエラー0x80073701を修正する方法
Windows Updateの不具合は、ユーザーが日常的に直面する問題の中でも特に厄介な部類に入ります。エラーの原因が複雑で特定しにくく、しかも同じようなエラーコードでも全く異なる原因や解決策が存在するケースが多いためです。
インターネット上には数多くの解決策が掲載されていますが、情報が散在していて整理されていないことも少なくありません。汎用的な対処法でどのエラーコードにも対応できる場合もありますが、特定のエラーコード専用の解決策が必要になることもあります。この記事では、「0x80073701」エラーに焦点を当て、原因と具体的な解決策をわかりやすく解説します。
Windows Updateエラー0x80073701とは?
0x80073701は「ERROR_SXS_ASSEMBLY_MISSING」というメッセージとともに表示されることが多く、更新プログラムに必要なシステムファイルやアセンブリが欠落している・破損していることが主な原因とされています。公式の恒久的な解決策は発表されていませんが、実際に効果のあった対処法がいくつか存在します。Windows 10のクリーンインストールといった大掛かりな操作を行う前に、まずは以下の方法を試してみてください。
一部の手順は初心者の方にはやや難しく感じられるかもしれませんが、どなたでも実行できるよう手順を簡潔にまとめています。それでは、実際に効果のある解決策を見ていきましょう。
解決策1:破損・欠落したシステムファイルを修復する
更新に必要なシステムファイルが不足していたり破損していたりすると、このエラーが発生することがあります。特に「ERROR_SXS_ASSEMBLY_MISSING」というメッセージが表示されている場合は、この原因である可能性が高いです。以下の手順で修復を試みてください。
- DISMツールを実行する:DISM(Deployment Image Servicing and Management)は、Windowsイメージのスキャンと修復を行える強力なツールです。次回の更新に向けたシステムの状態確認にも役立ちます。詳細な使い方は、Microsoft公式ドキュメントまたはDISMの解説記事を参照してください。
- SFCスキャンを実行する:SFC.exe(System File Checker)は管理者権限のコマンドプロンプトから実行でき、破損・欠落したシステムファイルを自動的に検出し、修復または置き換えてくれます。ERROR_SXS_ASSEMBLY_MISSINGはシステムファイルに問題がある場合に表示されるため、非常に有効な手段です。実行方法は「sfc /scannow」コマンドを管理者として実行します。
- CheckSURツールについて:過去のWindows XP、Vista、Windows 7では、システムの更新準備状況をチェックする「CheckSUR」というツールが使われていましたが、現在は提供が終了しています(Windows 7 Service Pack 1用のみ入手可能)。Windows 8以降およびWindows 10では利用できないためご注意ください。
解決策2:Windows Updateトラブルシューティングツールを実行する
Windowsには標準で複数のトラブルシューティングツールが搭載されており、単純な問題であれば自動的に修復できることがあります。以下の手順で実行してみましょう。
- 画面左下のスタートボタンをクリックし、歯車アイコンを選択して「設定」アプリを開きます。検索バーから探しても構いません。
- 「更新とセキュリティ」セクションを開き、「トラブルシューティング」メニューへ移動します。
- 「Windows Update」トラブルシューティングツールを選択し、画面の指示に従って実行します。Windows Update関連のサービスやプロセスに問題がないか自動的に診断されます。
- 診断が完了したら、再度トラブルシューティング画面を開き、今度は「インターネット接続」のトラブルシューティングツールも実行します。
- PCを再起動し、もう一度更新を試みてください。
注意:処理を円滑に進めるために、マウスとキーボード以外の周辺機器はすべて取り外しておくことをおすすめします。一部のデバイスはシステムの動作を遅くしたりフリーズさせたりすることがあり、更新中は特に影響を受けやすいです。
日時設定を確認する
日付と時刻の設定が正しくないと、さまざまな不具合の原因になります。以下の手順で設定を見直してください。
- スタートメニューを開き、電源ボタンの上にある歯車アイコンから「設定」アプリを起動します。「時刻と言語」を選び、「日付と時刻」タブへ移動します。
- 日付と時刻が正確かどうか確認します。誤っている場合は、「時刻を自動的に設定」のオン/オフを切り替えてみてください。
- 日付を変更するには、「日付」欄のドロップダウンメニューでカレンダーから現在の月を選び、当日の日付をクリックします。
- 時刻を変更するには、「時刻」欄の時・分・秒をクリックし、値を調整して現地時間に合わせます。
- 変更が完了したら「OK」をクリックします。
解決策3:Windows Updateコンポーネントを初期状態に戻す
この方法は、0x80073701エラーに悩む多くのユーザーが成功を報告している実績ある手法です。トラブルシューティングに慣れていない方にはやや難しく感じるかもしれませんが、手順を慎重に追えば問題なく実行できます。
作業を始める前に、実行中のすべてのプログラムを終了し、万が一に備えてレジストリのバックアップを作成しておくことを強くおすすめします。
- まず、Windows Updateに関わる中核サービスを停止します。「Background Intelligent Transfer」「Windows Update」「Cryptographic Services」の3つです。作業前にこれらを無効化しておくことが、後続の手順をスムーズに行う鍵となります。
- 「コマンドプロンプト」を検索し、右クリックから「管理者として実行」を選択します。以下のコマンドを1行ずつコピー&ペーストし、それぞれ入力後にEnterキーを押してください。
net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc
- 続いて、更新コンポーネントのリセットに向けて不要なファイルを削除します。こちらも管理者権限のコマンドプロンプトから実行します。
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
- 次の手順はやや強硬なアプローチですが、更新プロセスを根本からリセットできる確実な方法として、多くのオンラインフォーラムで推奨されています。他の手段で解決しない場合に試す価値があります。
- 「SoftwareDistribution」フォルダと「catroot2」フォルダの名前を変更します。管理者として開いたコマンドプロンプトで、以下のコマンドを1行ずつ実行してください。
Ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
Ren %systemroot%\system32\catroot2 catroot2.bak
- 以下のコマンドで、BITS(バックグラウンドインテリジェンス転送サービス)とwuauserv(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)
- System32フォルダへ移動して作業を続けます。
cd /d %windir%\system32
- BITSサービスを完全にリセットしたため、サービスの正常な動作に必要なファイルをすべて再登録する必要があります。ファイルごとに個別のコマンドが必要なため、作業が長くなりますが、以下のコマンドを1つずつ漏れなく実行してください。
- これらの処理で残ったファイルがないかレジストリを確認します。「regedit」と検索バーまたは「ファイル名を指定して実行」に入力してレジストリエディターを開き、以下のキーへ移動します。
HKEY_LOCAL_MACHINE\COMPONENTS
- Componentsキーをクリックし、右側のウィンドウに以下のキーが存在するか確認します。見つかった場合はすべて削除してください。
PendingXmlIdentifier
NextQueueEntryIndex
AdvancedInstallersNeedResolving
- 次にWinsockをリセットします。管理者権限のコマンドプロンプトに以下のコマンドを入力して実行します。
netsh winsock reset
- Windows 7、8、8.1、10をお使いの場合は、さらに以下のコマンドを実行します。
netsh winhttp reset proxy
- ここまでの手順が問題なく完了したら、最初の手順で停止したサービスを以下のコマンドで再起動します。
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
- すべての手順が完了したら、PCを再起動してください。
解決策4:コマンドプロンプトでパッケージを削除する
Windows Updateには「デルタ更新」と「累積更新(Cumulative update)」の2種類があります。デルタ更新はその月に配信された新規の修正のみを含むのに対し、累積更新はその月の修正に加え、未インストールの過去の更新もすべて含んでいます。
デルタ更新はWindows Updateカタログでのみ公開される一方、累積更新はWindows Updateカタログ、WSUS、そして自動更新で使用されるWindows Updateサーバーのすべてで公開されます。デルタ更新と累積更新を同時にダウンロード・インストールしてしまった場合は、以下の手順で問題を解決できます。
- スタートメニューで「コマンドプロンプト」を検索し、最初の結果を右クリックして「管理者として実行」を選択します。
- インストール待ちのパッケージ一覧を出力するため、以下のコマンドを入力します。
x:\windows\system32\dism.exe /image:<Windowsディレクトリのドライブ文字> /Get-Packages >> <テキストファイルの保存先パス>
「x」はWindowsがインストールされているパーティション(通常はc)に置き換えます。具体例は以下の通りです。
c:\windows\system32\dism.exe /image:c:\ /Get-Packages >> c:\temp\packages.txt
- 保存先のテキストファイルを開き、インストール保留中の更新パッケージがないか確認します。該当するパッケージが見つかった場合は、DISM.exeツールを使ってremove-packageコマンドで削除できます。管理者権限のコマンドプロンプトで以下のコマンドを実行してください。
dism.exe /image:<Windowsディレクトリのドライブ文字> /remove-package /packagename:<パッケージ名>
コマンド例:
c:\windows\system32\dism.exe /image:c:\ /remove-package /packagename:Package_for_KB4014329~31bf3856ad364e35~amd64~~10.0.1.0
以上の解決策を順番に試せば、0x80073701エラーは高い確率で解消できるはずです。それでも改善しない場合は、システムの復元ポイントの利用やWindows 10の修復インストールなど、より大規模な対処を検討してください。
-
Windows Update エラーコード 0x80073712 の解決方法|原因と8つの対処法を徹底解説
Windows Update を実行した際にエラーコード 0x80073712 が表示される場合、Windows Update に必要なファイルが破損しているか、欠落していることが原因です。このエラーは PC 内部の潜在的な問題によって引き起こされることが多く、結果として Windows Update が正常に完了しなくなります。また、CBS(Component-Based Servicing:コンポーネント ベース サービシング)のマニフェストが破損しているケースもあります。 Windows Update エラーコード 0x80073712 を修正する方法 以下に、エラー 0x800737
-
Windows Updateエラーコード0x80070017の原因と8つの解決策を徹底解説
Windowsを使用していると、誰でも何らかのエラーに遭遇することがあります。OSには多数のコンポーネントが含まれているため、ある意味でエラーは避けられないものとも言えます。本記事では、その中でも「0x80070017」というエラーコードに焦点を当て、具体的な対処方法を詳しくご紹介します。 Windowsエラー0x80070017は、主にインストールメディアの破損が原因で発生します。この記事を読み進めて、Windows Updateエラー0x80070017を解決しましょう。 Windows Updateエラーコード0x80070017の修正方法 この更新エラーは、主に以下の2つのシナリオで