
⚡ 3초 요약:
0% 멈춤은 캐시가 잠겨(Access Denied) 초기화가 실패하거나, 네트워크/DNS 차단으로 Microsoft 서버와 세션 자체가 성립되지 않을 때 가장 많이 발생한다.
이 글은 통합 스크립트(중지→폴더 변경→시작)로 캐시를 안전하게 재생성하고, DNS·VPN·방화벽까지 함께 점검해 0% 고정을 끝낸다.
🚨 작업 전 필수 체크
- 반드시 관리자 권한으로 CMD 또는 PowerShell 실행(미실행 시 Access Denied 가능)
- 업데이트 실패가 반복되는 PC는 작업 전 백업(로컬 + 클라우드) 권장
- 사내망/보안망/VPN 사용 중이면 잠시 해제 또는 예외 정책 확인(다운로드 0% 고정의 최다 원인)
🧪 My Lab Test Log
증상: 누적 업데이트 다운로드가 0%에서 15분 이상 고정
원인: BITS 큐가 꼬인 상태에서 SoftwareDistribution 잠김 + DNS 응답 지연으로 세션 생성 실패
해결: 통합 스크립트(중지→폴더 변경→시작) → DNS 8.8.8.8로 전환 → 재부팅
결과: 업데이트가 0%→12%로 즉시 증가, 이후 정상 설치 완료
1️⃣ Step 1 — Windows Update 서비스 재시작 + 캐시 초기화(통합 스크립트)
이 문제가 “치명적으로 많이” 실패하는 지점은 바로 여기다. 서비스를 다시 켠 상태에서 SoftwareDistribution / catroot2를 건드리면
폴더가 잠겨 파일이 사용 중이므로 액세스할 수 없습니다(Access Denied)가 거의 확정이다.
그래서 Dev-Fix 표준은 [서비스 중지 → 폴더 변경 → 서비스 재시작]을 한 번에 실행한다.
아래 스크립트는 4대 서비스(wuauserv, bits, cryptSvc, msiserver)를 모두 통제하고,
폴더를 .old로 변경해 Windows가 새 캐시를 “재생성”하게 만든다.
net stop wuauserv
net stop bits
net stop cryptSvc
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start bits
net start cryptSvc
net start msiserver
net start wuauserv
실행 후에는 반드시 재부팅한다. 재부팅 과정에서 BITS(Background Intelligent Transfer Service) 큐가 정리되고,
Windows Update는 새 SoftwareDistribution 폴더를 만들며 다운로드를 다시 준비한다.
👉 같은 초기화라도 “완전 리셋”이 필요한 경우
2️⃣ Step 2 — 0% 고정의 진짜 주범: DNS·방화벽·VPN 점검
다운로드가 0%에서 “아예 시작조차 안 되는” 케이스는 캐시 문제만으로 설명되지 않는다.
특히 사내 네트워크, 보안 모듈, VPN, 특정 공유기 환경에서는 Microsoft 업데이트 서버와의 HTTPS 통신이 막혀
세션이 성립되지 않아 0%가 유지된다.
아래 3가지를 순서대로 적용한다. (한 가지씩 적용 후 업데이트 화면에서 1% 이상 상승하는지 확인)
(1) VPN/프록시 OFF: 설정 → 네트워크 및 인터넷 → VPN에서 연결 끊기, 프록시 사용 중이면 “프록시 서버 사용” 끔.
(2) 공용 DNS로 전환: DNS가 느리거나 차단되면 업데이트 서버 주소 해석이 실패한다. 아래 명령으로 현재 DNS를 확인한다.
ipconfig /all
공유기/ISP DNS가 의심되면 어댑터 속성에서 IPv4 DNS를 8.8.8.8 / 8.8.4.4로 바꾸고,
변경 후 DNS 캐시를 비운다.
ipconfig /flushdns
(3) 방화벽/보안망 점검: 회사 PC라면 도메인 정책/보안 장비가 다운로드를 막을 수 있다.
가능하면 사내망이 아닌 모바일 핫스팟으로 테스트해 0%가 풀리는지 확인한다.
👉 다운로드 자체가 막히는 유형과 자주 같이 뜨는 코드
3️⃣ Step 3 — DISM + SFC 복구(무결성 루프)
0% 멈춤이 장시간 반복되면 “다운로드만” 문제라고 단정하면 안 된다.
Component Store(WinSxS) 무결성이 무너진 상태에서는 업데이트 준비 단계에서 내부 검증이 실패하면서
BITS가 다운로드를 잡아도 적용 파이프라인이 정상 작동하지 않는 경우가 있다.
Dev-Fix 기본 원칙은 DISM → SFC 순서다. DISM으로 저장소를 먼저 복구하고,
그 다음 SFC로 실제 시스템 파일을 교체한다.
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
DISM이 100% 완료되었는지, SFC가 무결성 위반을 수정했는지(또는 위반 없음인지) 확인한 뒤 재부팅한다.
4️⃣ Step 4 — 업데이트 재시도(검증 체크포인트)
설정 → Windows 업데이트 → 업데이트 확인을 다시 실행한다.
이때 “성공” 기준은 단순히 화면이 바뀌는 것이 아니라 진행률이 1% 이상 증가하는 것이다.
진행률이 올라가면, 이벤트 뷰어에서 WindowsUpdateClient 로그로 다운로드/설치 이벤트가 찍히는지도 확인한다.
(응용 프로그램 및 서비스 로그 → Microsoft → Windows → WindowsUpdateClient → Operational)
👉 Windows Update 전체 흐름에서 어디가 막혔는지 빠르게 분기
💬 자주 묻는 질문 (FAQ)
👉 질문을 클릭하면 답이 펼쳐집니다 ▼
Q. Windows 업데이트가 0%에서 멈추는 이유는 무엇인가요? (▼ 클릭)
대표 원인은 ① BITS/Windows Update 서비스 고착 ② 손상된 SoftwareDistribution 캐시 ③ DNS·방화벽·VPN 차단(서버 세션 불가) ④ 시스템 무결성 오류다. “0%에서 시작도 안 됨”이면 네트워크 원인을 먼저 의심한다.
Q. 기다리면 해결되나요? (▼ 클릭)
5~10분 이상 0%에서 변화가 없다면 자연 회복 가능성은 낮다. 특히 VPN/사내망/공유기 환경에서는 “세션 자체가 막혀” 무한 0%가 유지될 수 있으므로 즉시 Step 1~2를 진행한다.
Q. 캐시 삭제를 하면 Access Denied가 뜨는데요? (▼ 클릭)
서비스가 켜진 상태에서 폴더를 바꾸면 잠김으로 인해 실패한다. 반드시 이 글의 통합 스크립트처럼 “중지→폴더 변경→시작” 순서로 실행해야 한다. 관리자 권한 실행도 필수다.
Q. 공용 DNS(8.8.8.8)로 바꾸면 왜 효과가 있나요? (▼ 클릭)
0% 고정의 다수는 업데이트 서버 도메인 해석이 느리거나 차단되어 HTTPS 연결이 시작되지 못하는 케이스다. 공용 DNS로 전환하면 도메인 해석 경로가 바뀌어 다운로드 세션이 정상 생성되는 경우가 있다.
Q. 계속 멈추면 재설치가 필요한가요? (▼ 클릭)
대부분은 재설치까지 가지 않는다. 통합 초기화 + 네트워크 점검 + DISM/SFC로 해결되는 편이다. 다만 수차례 반복되고 다른 오류 코드로 전환되면 P1 허브 흐름대로 원인 분기를 진행하고, 최후에는 인플레이스 업그레이드를 검토한다.