1. 문제 현상: 업데이트 0% 멈춤과 PowerShell 오류
- 증상: 특정 업데이트(KB5074105 등)가 다운로드 0%에서 요지부동.
- 에러: PowerShell에서 업데이트 확인 시 ArgumentException (Value does not fall within the expected range) 발생.
- 원인: 시스템 파일 및 업데이트 데이터베이스(DB)의 무결성 손상.
2. 최종 해결 방법
여러 시도 끝에 윈도우의 '뼈대'를 다시 맞추는 다음 명령어로 해결했습니다.
- 시스템 파일 검사: sfc /scannow
- 이미지 복구: dism /online /cleanup-image /restorehealth
[코드 내용]
# 1. 관리자 권한 자동 요청: 권한이 없으면 스스로 관리자 모드로 재실행합니다.
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
exit
}
# 2. 영문판 윈도우 한글 깨짐 방지: 출력 인코딩을 유니코드로 강제 설정합니다.
[Console]::OutputEncoding = [System.Text.Encoding]::Unicode
Write-Host "`n--- [System Check] 업데이트 목록 확인 중... ---" -ForegroundColor Cyan
# 업데이트 목록을 불러옵니다.
$updates = Get-WindowsUpdate
# 3. 업데이트 항목 유무에 따른 분기 처리
if ($null -eq $updates -or $updates.Count -eq 0) {
Write-Host "`n[결과] 현재 설치할 새로운 업데이트가 없습니다. 시스템이 최신 상태입니다." -ForegroundColor Green
} else {
Write-Host "`n--- [Action] 모든 업데이트 설치 및 완료 후 자동 재부팅 시작 ---" -ForegroundColor Yellow
# 모든 업데이트를 수락하고 설치 후 필요시 자동 재부팅합니다.
Install-WindowsUpdate -AcceptAll -AutoReboot
}
# 4. 결과 확인을 위한 대기: 창이 바로 닫히는 것을 방지합니다.
Write-Host "`n작업이 완료되었습니다. 종료하려면 엔터(Enter)를 누르세요..." -ForegroundColor White
Read-Host
✅ 메모장 저장
현재 스크립트 파일(.ps1)을 메모장으로 열고 [File] -> [Save As...] 를 누른 뒤 다음 두 가지를 반드시 확인하세요.
- 파일명: Update_All.ps1 (확장자 주의)
- 로컬디스크 저장 추천!
⚠️ 중요: 영문 윈도우 유저를 위한 한글 깨짐 방지 팁
영문판 워크스테이션 환경에서는 스크립트 실행 시 한글이 깨질 수 있습니다.
- 해결: 메모장에서 저장 시 반드시 [UTF-16 LE] 또는 [Unicode] 인코딩을 선택하세요.
- BOM(Byte Order Mark) 이 포함된 인코딩을 사용해야 PowerShell이 한글을 정확히 해석합니다.
3. 원클릭 업데이트 스크립트 공유
매번 명령어를 치기 번거로워 제작한 스크립트입니다. 관리자 권한 승인부터 업데이트 설치 후 재부팅까지 자동화합니다.
1초 만에 실행하는 꿀팁 (바로가기 설정)
스크립트 파일을 우클릭하여 **'바로가기(Shortcut)'**를 만든 후, 속성에서 다음과 같이 설정하세요.
- 대상(Target): powershell.exe -ExecutionPolicy Bypass -File "파일경로"
- 고급 설정: '관리자 권한으로 실행' 체크 필수!
[이미지]

[이미지] 바로가기 실행 후 파워셀
