How to Fix Windows Update Error 0x80070005 (Access Denied)

5 min read

Windows Update error 0x80070005 means access denied — a permissions problem preventing updates from installing. Here are all the fixes: reset permissions, restart services, and run as SYSTEM.

Error 0x80070005 during Windows Update means "Access Denied" — something is blocking the update process from writing files or accessing a registry key. Here's how to fix it.


Common Causes

  • Third-party antivirus blocking the update
  • Corrupted Windows Update permissions
  • SoftwareDistribution folder corruption
  • Group Policy restriction
  • Running Windows without admin rights

Fix 1: Run Windows Update Troubleshooter

Win + ISystemTroubleshootOther troubleshootersWindows UpdateRun

This automatically resets permissions and services. Try updating again after it completes.


Fix 2: Temporarily Disable Antivirus

Third-party antivirus frequently causes 0x80070005. Disable it temporarily:

  • Right-click antivirus tray icon → disable protection for 10 minutes
  • Run Windows Update
  • Re-enable antivirus

If the update succeeds — add Windows Update folders to antivirus exclusions:

C:\Windows\SoftwareDistribution
C:\Windows\Temp

Fix 3: Reset Windows Update Permissions

rem Run as Administrator
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver

icacls %SystemRoot%\SoftwareDistribution /reset /T /C /Q
icacls %SystemRoot%\System32\catroot2 /reset /T /C /Q

net start wuauserv
net start cryptSvc
net start bits
net start msiserver

Fix 4: Reset SoftwareDistribution Folder

Stop-Service wuauserv -Force
Stop-Service bits -Force

Rename-Item "C:\Windows\SoftwareDistribution" "SoftwareDistribution.old" -Force
New-Item -ItemType Directory -Path "C:\Windows\SoftwareDistribution"

Start-Service wuauserv
Start-Service bits

Then try Windows Update again — it downloads fresh update metadata.


Fix 5: Fix Registry Permissions

Some updates fail because registry keys have wrong permissions:

rem Reset registry permissions for Windows Update keys
secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose

Or use SubInACL (Microsoft tool) to reset permissions:

subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f
subinacl /subdirectories %SystemDrive% /grant=administrators=f

Fix 6: Run SFC and DISM

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Restart after both complete.


Fix 7: Check Group Policy

If this is a work PC, Group Policy may be restricting updates:

gpresult /r | Select-String "Update"

Contact your IT administrator if Group Policy is blocking updates.


Fix 8: Install Update Manually

Find the failing KB number in Windows UpdateUpdate history → search on catalog.update.microsoft.com → download and run the .msu file directly.

Manual installation bypasses the Windows Update agent that's getting the access denied error.


Fix 9: Check User Account Control

# Check UAC level
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" |
  Select-Object EnableLUA, ConsentPromptBehaviorAdmin

EnableLUA should be 1. If it's 0 — UAC is disabled which can cause permission issues:

Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
  -Name "EnableLUA" -Value 1 -Type DWord

Restart required.


Fix 10: Reset Windows Update Components Script

# Comprehensive reset script
$services = "wuauserv","cryptSvc","bits","msiserver","appidsvc","sppsvc"
$services | ForEach-Object { Stop-Service $_ -Force -ErrorAction SilentlyContinue }

# Reset BITS and Windows Update database
Remove-Item "$env:ALLUSERSPROFILE\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -Force -ErrorAction SilentlyContinue

# Re-register DLLs
$dlls = "atl.dll","urlmon.dll","mshtml.dll","shdocvw.dll","browseui.dll",
        "jscript.dll","vbscript.dll","scrrun.dll","msxml.dll","msxml3.dll",
        "msxml6.dll","actxprxy.dll","softpub.dll","wintrust.dll","dssenh.dll",
        "rsaenh.dll","gpkcsp.dll","sccbase.dll","slbcsp.dll","cryptdlg.dll",
        "oleaut32.dll","ole32.dll","shell32.dll","wuapi.dll","wuaueng.dll",
        "wucltui.dll","wups.dll","wups2.dll","wuweb.dll","qmgr.dll","qmgrprxy.dll",
        "wucltux.dll","muweb.dll","wuwebv.dll"

$dlls | ForEach-Object { regsvr32.exe /s $_ }

# Reset network settings
netsh winsock reset
netsh winhttp reset proxy

$services | ForEach-Object { Start-Service $_ -ErrorAction SilentlyContinue }

Write-Host "Reset complete. Restart and try Windows Update again." -ForegroundColor Green


🔍 Не знаєш що означає код помилки Windows?

Якщо Windows показує код на кшталт 0x80070005, 0x80070002 або 0xC000021A — скористайся безкоштовним інструментом:

→ Декодер помилок Windows — введи код і одразу дізнайся що він означає та як виправити.

Summary

Most common fix: disable antivirus temporarily → run Windows Update → re-enable. If that fails: reset SoftwareDistribution folder and restart update services. For persistent cases: run the comprehensive reset script above or install the failing update manually from Microsoft Update Catalog.

Related articles

← All articles