エラーの内容
Windows Updateを実行すると、次のエラーで止まってしまいます:
Windows Update error 0x80070005
ACCESS_DENIED または10進数の 2147942405 として表示されることもあります。ダウンロードは完了するものの、インストールが0%で止まるケースや、プログレスバーすら表示されずに即座に失敗するケースもあります。
原因
0x80070005はWindowsの汎用アクセス拒否コードで、ロックされたファイルを削除しようとしたときにも表示される同じコードです。Windows Updateでこのエラーが発生する主な原因は以下のとおりです:
- SoftwareDistributionフォルダの破損またはロック — インストール前にアップデートファイルが一時保存されるキャッシュフォルダ
- インストール中の重要なタイミングでウイルス対策ソフトがファイルをロックしている場合
- Updateサービスアカウントに主要なシステムディレクトリへのアクセス権限がない場合
- システムファイルの破損によりUpdateスタックが上書きできない場合
- 古いグループポリシーの制限 — かつて企業ドメインに参加していたマシンで特によく見られる
手順別の修正方法
手順1:Windows Updateトラブルシューターを実行する
手動で何かを変更する前に、まずWindowsに自動修復を試みさせましょう。管理者としてPowerShellを開きます:
msdt.exe /id WindowsUpdateDiagnostic
ウィザードの指示に従い、提案された修正を適用してください。特別なことはしていませんが、サービスの状態やいくつかのアクセス権限が自動的にリセットされます。これだけで約30%のケースでエラーが解消されます。
手順2:Windows Updateコンポーネントをリセットする
トラブルシューターで解決しない場合、この方法が最も効果的です。管理者としてコマンドプロンプトを開き、Updateスタックに関わる4つのサービスを停止します:
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
サービスを停止したら、破損している可能性が高い2つのキャッシュフォルダの名前を変更します。削除ではなく名前の変更にすることで、問題が起きた場合にロールバックできます:
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
サービスを再起動します:
net start wuauserv
net start cryptSvc
net start bits
net start msiserver
次回のアップデート試行時に、Windowsが両フォルダを新たに再作成します。設定 → Windows Update を開いて再度試してみてください。
手順3:SoftwareDistributionのアクセス権限を修正する
それでも失敗する場合、新しく作成されたSoftwareDistributionフォルダが古いフォルダから壊れたアクセス権限を引き継いでいる可能性があります。管理者権限のコマンドプロンプトで、権限を明示的にリセットします:
icacls C:\Windows\SoftwareDistribution /reset /T /C /Q
icacls C:\Windows\SoftwareDistribution /grant SYSTEM:(OI)(CI)F /T
icacls C:\Windows\SoftwareDistribution /grant Administrators:(OI)(CI)F /T
次に、Updateサービスを再起動します:
net stop wuauserv && net start wuauserv
手順4:システムファイルを修復する
システムファイルが破損していると、アクセス権限が正常に見えてもインストールがブロックされることがあります。まずSFCを実行します:
sfc /scannow
完了まで実行してください(通常5〜10分かかります)。修復できない破損が報告された場合は、DISMで対処します:
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
DISMはMicrosoftのサーバーから直接修復ファイルを取得するため、インターネット接続が必要です。両ツールが完了したら、sfc /scannow をもう一度実行してください。DISMが解放したファイルをSFCが2回目のパスで置き換えられるようになることがあります。
手順5:ウイルス対策ソフトの干渉を確認する
リアルタイム保護を一時的に無効にしてアップデートを再試行します。成功した場合、ウイルス対策ソフトがインストール中にファイルをロックしていたことが原因です。以下のパスをウイルス対策ソフトの除外リストに永続的に追加してください:
C:\Windows\SoftwareDistribution\C:\Windows\System32\catroot2\C:\Windows\WinSxS\
アップデートが完了したらリアルタイム保護を再度有効にしてください。必要以上に長くリアルタイムスキャンをオフにしないようにしましょう。
手順6:グループポリシーを確認する(企業またはドメイン参加マシン)
かつてドメインに参加していたマシンには、ドメインから離脱した後も古いグループポリシーのエントリが残り、アップデートをサイレントにブロックすることがあります。グループポリシーエディター(gpedit.msc)を開き、次の場所に移動します:
Computer Configuration
→ Administrative Templates
→ Windows Components
→ Windows Update
アップデートの動作を制限している 有効 になっているポリシーは、未構成 に変更してください。変更を適用します:
gpupdate /force
gpedit.mscにアクセスできない場合は、関連するレジストリキーを直接削除します:
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" /f
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /f
gpupdate /force
修正の確認
上記のいずれかの手順を実行した後:
- 設定 → Windows Update を開く
- 更新プログラムの確認 をクリック
- 以前に失敗した箇所を超えてダウンロードとインストールが進むことを確認する
- 再起動を求めるメッセージが表示されれば完了です
確実に確認したい場合は、Updateログを取得してください:
Get-WindowsUpdateLog
このコマンドで %USERPROFILE%\Desktop\WindowsUpdate.log に読みやすいログが書き出されます。0x80070005 を検索して、修正後に新しいエントリがなければ問題は解消されています。
ヒント
- クリーンな再起動後にアップデートを実行する — すべてのアプリを閉じて再起動し、他のアプリを起動する前にWindows Updateを開きましょう。実行中のプロセスが少ないほど、インストーラーと競合するファイルロックも減ります。
- ディスクの状態を確認する — ドライブが劣化していると、見せかけのアクセス権限エラーが発生することがあります。他の方法が効果なかった場合は、
chkdsk C: /f /r(実行にはスケジュール設定のための再起動が必要)を実行し、完了してから再試行してください。 - Windows Update Medicサービス — Windows 11では、このサービスがバックグラウンドでUpdateスタックを自動修復します。カスタマイズやデブロートされたインストールでは無効化されていることがあります。次のコマンドで再度有効にしてください:
sc config WaaSMedicSvc start=demand。注意:このサービスを変更するには、先にそのレジストリキーの所有権を取得する必要があります。 - Linux/クロスプラットフォーム環境をお使いの方へ — Linuxシステムでも権限の問題をトラブルシューティングしている場合は、ToolCraftのUnix Permissions Calculatorを使うと、適用前にchmod値を視覚的に確認できます。無料のブラウザベースツールで、ファイルのアップロードは不要です。

