0x80070005 오류 해결 순서: 업데이트, 스토어, 정품 인증에서 액세스가 거부될 때
윈도우 업데이트나 스토어 앱 설치 도중 0x80070005 오류가 뜨며 작업이 멈추는 경우 참고할 포스팅입니다.

0x80070005가 나오는 상황과 원인

0x80070005는 E_ACCESSDENIED, 즉 액세스가 거부되었다는 코드입니다. 프로그램이나 서비스가 필요한 파일, 폴더, 레지스트리 항목에 접근하지 못할 때 나오므로, 뜨는 자리마다 세부 원인은 달라도 그 뿌리는 접근 권한입니다. 아래 권한과 구성 요소 초기화는 윈도우 업데이트 오류용 절차입니다.
마이크로소프트 문서가 드는 원인은 다섯 가지입니다. WinSxS와 SoftwareDistribution 폴더에 TrustedInstaller 계정의 권한이 없는 경우, 관련 레지스트리 키의 권한이 틀어진 경우, 타사 백신이 업데이트 파일을 잡고 있는 경우, SYSTEM 계정에 Windows 폴더(%windir%)의 모든 권한이 없는 경우, 그룹 정책 설정이나 관리 에이전트가 시스템 폴더 쓰기를 제한한 경우입니다.

먼저 해 보는 가벼운 확인

- 컴퓨터를 다시 시작하고 다시 시도합니다. 일시적인 파일 잠김은 재시작으로 풀릴 수 있습니다.
- 표준 계정이면 관리자 계정으로 같은 작업을 해서 권한 부족인지 확인합니다.
- 타사 백신의 실시간 보호를 잠시 끄고 다시 시도합니다. 확인이 끝나면 실시간 보호를 다시 켭니다. 백신이 파일을 잠그면 권한이 있어도 거부됩니다.
- 윈도우 10과 11 모두 도움말 보기 앱의 Windows 업데이트 문제 해결사를 먼저 실행하라는 것이 오피셜 안내입니다. 안 풀리면 윈도우 11은 설정->시스템->문제 해결->기타 문제 해결사의 Windows 업데이트 옆 실행을, 윈도우 10은 설정->업데이트 및 보안->문제 해결->추가 문제 해결사에서 Windows 업데이트->문제 해결사 실행을 선택합니다. 문제 해결사는 자동으로 진단을 실행하고 대부분의 문제 해결을 시도합니다.

스토어 앱에서만 오류가 난다면 Win + R 실행 창에 wsreset.exe를 입력해 스토어 캐시를 비웁니다.

권한 초기화 전에 해 둘 백업

권한 초기화와 구성 요소 초기화는 시스템 폴더의 권한과 내용을 한꺼번에 바꿉니다. 그래서 마이크로소프트 오피셜 문서의 안내대로 운영체제 디스크를 먼저 백업해야 합니다.
디스크 백업과 별도로 문서, 사진, 작업 폴더를 외장 저장장치나 클라우드에 백업하고 열리는지 확인해 둡니다.
권한과 업데이트 구성 요소를 되돌리는 순서
위 백업을 마친 뒤 진행합니다. 명령 프롬프트를 관리자 권한으로 열어 아래 단계를 하나씩 실행하고, 단계마다 컴퓨터를 다시 시작한 뒤 업데이트를 다시 시도합니다.

icacls "%windir%\WinSxS" /reset /t /c /q와icacls "%windir%\SoftwareDistribution" /reset /t /c /q를 실행합니다. 두 폴더와 하위 항목의 권한을 기본 상속 권한으로 재설정합니다.icacls "%windir%\WinSxS" /setowner "NT SERVICE\TrustedInstaller" /t /c /q로 WinSxS 폴더의 소유자를 TrustedInstaller로 지정합니다. 원인 목록 첫 항목인 이 계정의 폴더 권한 문제를 바로잡는 단계입니다.net stop wuauserv,net stop bits,net stop cryptSvc로 서비스를 멈춥니다.ren %windir%\SoftwareDistribution SoftwareDistribution.old와ren %windir%\System32\catroot2 catroot2.old로 폴더 이름을 바꾼 뒤net start cryptSvc,net start bits,net start wuauserv로 서비스를 다시 시작합니다. 기존 업데이트 캐시를 .old 폴더로 바꿔 두고 처음부터 다시 받게 합니다.

손상된 시스템 파일을 고치는 DISM과 sfc
그래도 오류가 계속되면 윈도우 파일이 손상됐을 수 있습니다. 오피셜 문서의 순서는 DISM을 먼저 실행한 뒤 sfc를 실행하는 것입니다.

DISM /Online /Cleanup-Image /RestoreHealth를 실행하고 재시작합니다. 복구 파일을 받아 구성 요소 저장소를 고쳐, sfc가 쓸 원본을 먼저 정상으로 만듭니다.sfc /scannow를 실행합니다. sfc는 보호된 시스템 파일을 검사하고 손상된 파일을 캐시된 사본으로 교체합니다. 검사가 끝날 때까지 창을 닫지 않습니다.
sfc가 작업을 수행하지 못했다고 알리면 안전 모드에서 다시 실행합니다. 자세한 대처 방법은 아래 링크에 있습니다.
sfc 결과 메시지별 뜻과 다음 행동은 sfc /scannow 사용법: 결과 메시지 4가지의 뜻과 다음 행동에 따로 정리했습니다.
그래도 안 될 때 좁혀 가는 방법
- 필터 드라이버:
fltmc로 파일 시스템 필터 드라이버 목록을 봅니다. 타사 항목은fltmc unload <드라이버 이름>으로 잠시 내리고 재시도해 드라이버 간섭을 가려냅니다. - 클린 부팅:
msconfig의 서비스 탭에서 모든 Microsoft 서비스 숨기기, 모두 사용 안 함을 차례로 누르고, 시작 프로그램 탭의 작업 관리자 열기에서 시작 앱도 사용 안 함으로 바꾼 뒤 재시작합니다. 오류가 사라지면 꺼 둔 항목 중 하나가 원인일 수 있습니다. 확인이 끝나면 꺼 둔 서비스와 시작 앱을 다시 사용으로 되돌립니다. - 새 관리자 계정: 계정을 하나 더 만들어 같은 작업을 해 봅니다. 성공하면 기존 계정의 프로필이나 권한 쪽을 의심할 수 있습니다.
- 정품 인증:
slmgr /ato로 인증하다가 관리자 권한이 필요하다는 안내와 함께 이 코드가 나오면, 명령 프롬프트를 관리자 권한으로 열어 같은 작업을 다시 실행합니다. 사용자 계정 컨트롤(UAC)이 관리자 권한이 아닌 명령 프롬프트에서는 정품 인증 과정을 막기 때문입니다.

윈도우 업데이트 0x80070005 오류의 전체 절차는 아래 링크에 있습니다.
그럼.. 다음 포스팅에서 또 뵙겠습니다.