PC를 오래 쓰다 보면 C 드라이브 용량이 어느새 빨간불로 바뀌어 있거나, 윈도우 업데이트와 기본 설정 앱이 이유 없이 버벅거릴 때가 있습니다. 이럴 때 많은 분들이 습관처럼 무료 PC 클리너나 최적화 프로그램부터 검색해서 설치하곤 하시는데요.
솔직히 저도 예전에는 유명한 서드파티 정리 툴을 몇 번 써봤지만, 요즘 나오는 무료 클리너들은 검사를 마친 뒤 실제 삭제 버튼을 누르려면 유료 결제 유도 팝업을 띄우거나 백그라운드 서비스에 상주하면서 알림을 계속 띄우는 경우가 많아 오히려 PC를 더 무겁게 만들곤 합니다.
최근 해외 IT 매체 MakeUseOf의 필자 Tashreef Shareef가 정리한 PowerShell 기반 Windows 유지관리 가이드와 마이크로소프트 공식 기술 문서(Microsoft Learn)를 함께 살펴보면서, 굳이 외부 프로그램을 깔지 않아도 윈도우 기본 명령어 몇 줄이면 훨씬 투명하고 안전하게 PC를 관리할 수 있다는 점을 다시금 확인했습니다.
먼저 핵심부터 정리하면, Windows 10 및 Windows 11에 기본 내장된 PowerShell과 DISM·SFC 명령어 4가지만 알아두면 ① 7일 이상 지난 Temp 임시 파일만 골라 미리보기(-WhatIf) 후 삭제하고, ② 30일을 기다려야 하는 WinSxS 업데이트 백업 정리를 즉시 실행하며, ③ 저장장치가 SSD인지 HDD인지 스스로 판별해 TRIM 또는 조각 모음을 수행하고, ④ 재부팅으로 해결되지 않는 시스템 파일 손상까지 한 번에 복구할 수 있습니다.

외부 클리너 프로그램은 무엇을 지우는지 기준이 불투명한 경우가 많지만, PowerShell 명령어는 내가 직접 조건(예: 7일 이상 수정되지 않은 파일)을 지정하고 삭제 전 시뮬레이션 결과부터 눈으로 확인할 수 있다는 점이 가장 큰 매력입니다.
이번 글에서는 한글 Windows 11 환경을 기준으로 각 명령어가 어떤 원리로 작동하는지, 그리고 복사해서 바로 쓸 수 있는 단계별 명령어와 절대 건드리면 안 되는 주의사항까지 제 관점을 덧붙여 차근차근 정리해 보겠습니다.
한눈에 보는 Windows 내장 유지관리 명령어 4대장 비교
본격적인 설명에 앞서, 오늘 다룰 네 가지 핵심 명령어가 각각 어떤 상황에서 쓰이고 관리자 권한이 필요한지 표로 먼저 정리했습니다.
| 작업 구분 | 사용하는 핵심 명령어 / 도구 | 관리자 권한 필요 여부 | 대응하는 한글 Windows 기본 메뉴 | 핵심 장점 및 추천 실행 시점 |
| 1. Temp 임시 파일 조건부 삭제 | Get-ChildItem "$env:TEMP" + Remove-Item -WhatIf | 불필요 (일반 사용자 권한 가능) | 설정 > 시스템 > 저장소 > 저장 공간 센스 | 7일 이상 안 쓴 파일만 골라 삭제 전 목록·용량 미리보기 가능 |
| 2. WinSxS 업데이트 구성 요소 정리 | DISM /Online /Cleanup-Image /AnalyzeComponentStore 및 /StartComponentCleanup | 필수 (관리자 권한 터미널) | 디스크 정리(cleanmgr) > Windows 업데이트 정리 | 기본 30일 대기 시간을 건너뛰고 실제 정리 필요 여부를 먼저 진단 |
| 3. SSD·HDD 맞춤 드라이브 최적화 | Get-PhysicalDisk 및 Optimize-Volume -DriveLetter C -Verbose | 필수 (관리자 권한 터미널) | 드라이브 조각 모음 및 최적화(dfrgui) | SSD는 TRIM, HDD는 조각 모음을 자동 선택하며 진행 과정을 상세 표시 |
| 4. 손상된 시스템 이미지 및 파일 복구 | DISM /Online /Cleanup-Image /RestoreHealth 및 sfc /scannow | 필수 (관리자 권한 터미널) | 별도 GUI 메뉴 없음 (명령줄 전용) | 윈도우 업데이트 실패·설정 앱 튕김 등 재부팅으로 안 고쳐지는 오류 수리 |
한국어 Windows 11에서 관리자 권한 PowerShell을 여는 가장 빠른 방법은 키보드에서 Win + X 키를 누른 뒤 메뉴에서 ‘터미널(관리자)’ 또는 ‘Windows PowerShell(관리자)’를 클릭하는 것입니다. 상단 탭 이름 옆에 ‘관리자: Windows PowerShell’이라고 표시되어 있다면 준비가 끝난 상태입니다.
1) 휴지통 거치지 않는 삭제도 안심: -WhatIf로 Temp 임시 폴더 미리보고 지우기
윈도우에는 원래 저장 공간 센스(Storage Sense)라는 자동 정리 기능이 들어 있습니다(설정 > 시스템 > 저장소). 문제는 이 기능이 기본적으로 꺼져 있는 경우가 많고, 켜두더라도 C 드라이브 여유 공간이 부족해질 때만 소극적으로 작동한다는 점입니다.
그사이 각종 프로그램 설치 파일이 압축을 풀면서 남긴 찌꺼기나 앱 캐시 파일들이 사용자 임시 폴더(%TEMP%, 즉 C:\Users\사용자이름\AppData\Local\Temp)에 수 기가바이트씩 쌓이게 됩니다.
이럴 때 탐색기에서 Temp 폴더를 열어 무작정 Ctrl + A로 전체 삭제를 시도하면, 현재 실행 중인 크롬이나 오피스, 백신 프로그램이 사용 중인 임시 파일까지 건드려 오류가 나거나 삭제 거부 창이 연달아 뜨곤 합니다. 원문 필자가 제안한 PowerShell 파이프라인 명령어는 바로 이 문제를 아주 영리하게 피해 갑니다.
먼저 아무것도 실제로 지우지 않고 ‘삭제 대상 목록만 미리 확인’하는 시뮬레이션 명령어입니다.
Get-ChildItem "$env:TEMP" -File -Force | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Item -WhatIf
이 명령어가 작동하는 순서를 뜯어보면 꽤 합리적입니다.
Get-ChildItem "$env:TEMP" -File -Force: 현재 로그인한 사용자의 Temp 폴더 최상위 경로에서 숨김 파일(-Force)을 포함한 ‘파일(-File)’만 불러옵니다. 하위 폴더까지 무리하게 파고들지(-Recurse 미사용) 않아 구조가 깨질 위험이 적습니다.Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) }: 마지막으로 수정된 날짜(LastWriteTime)가 오늘로부터 7일 이전인 오래된 파일만 필터링합니다. 최근 일주일 사이에 생성·수정된 파일은 그대로 남겨두기 때문에 현재 열려 있는 프로그램이 쓰는 임시 파일을 건드리지 않습니다.Remove-Item -WhatIf: Microsoft Learn의 Remove-Item 공식 문서에 정의된 -WhatIf 스위치는 명령어를 실제로 실행하지 않고 “이 명령을 실행하면 어떤 파일이 삭제될지” 화면에 시뮬레이션 결과(What if: Performing the operation "Remove File" on target...)만 출력해 줍니다.
PowerShell에서 Remove-Item으로 지운 파일은 윈도우 휴지통을 거치지 않고 즉시 영구 삭제됩니다. 그래서 이렇게 -WhatIf로 한 번 눈으로 확인하는 습관이 중요합니다.
만약 삭제하기 전에 “대체 얼마만큼의 용량이 쌓여 있는지 바이트(Byte) 합계부터 보고 싶다”면 마지막 파이프라인만 아래처럼 바꿔 실행해 볼 수 있습니다.
Get-ChildItem "$env:TEMP" -File -Force | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Measure-Object -Property Length -Sum
출력 결과의 Sum 항목에 나온 숫자를 1,073,741,824(1024의 세제곱)로 나누면 몇 GB인지 바로 감이 옵니다. 목록과 용량을 확인하고 나서 실제로 삭제를 진행할 때는 맨 끝의 -WhatIf만 뺀 아래 명령어를 실행하면 됩니다.
Get-ChildItem "$env:TEMP" -File -Force | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } | Remove-Item -Force -ErrorAction SilentlyContinue
(개인 팁: 원문에서는 단순 Remove-Item을 안내했지만, 실제 한국어 윈도우 환경에서 읽기 전용 속성이 걸린 임시 파일이나 백그라운드 프로세스가 잡고 있는 파일 때문에 빨간색 에러 메시지가 뜨는 것이 거슬린다면 -Force -ErrorAction SilentlyContinue를 덧붙여 주면 잠긴 파일만 조용히 건너뛰고 깔끔하게 정리됩니다.)
단, 이 명령어는 어디까지나 임시 폴더($env:TEMP)를 위한 것입니다. 실수로 경로를 Documents(문서)나 Downloads(다운로드) 폴더로 바꿔서 실행하면 7일 지난 중요 문서가 휴지통도 없이 날아가니 경로만큼은 절대 수정하지 마시기 바랍니다.
2) 30일 기다릴 필요 없는 WinSxS 정리: DISM 구성 요소 저장소 분석과 /ResetBase 주의점
C 드라이브 용량을 잡아먹는 가장 큰 주범 중 하나가 바로 C:\Windows\WinSxS 폴더입니다. 윈도우는 매달 누적 업데이트를 설치할 때마다, 혹시라도 업데이트 후 문제가 생겨 이전 버전으로 롤백(제거)해야 할 경우를 대비해 구버전 구성 요소 파일들을 이 구성 요소 저장소(Component Store, WinSxS)에 보관해 둡니다. 비유하자면 이사 온 뒤에도 혹시 몰라 예전 가전제품 빈 박스를 창고에 계속 쌓아두는 것과 비슷합니다.
Microsoft Learn의 WinSxS 폴더 정리 공식 문서에 따르면, 윈도우 작업 스케줄러의 StartComponentCleanup 작업은 업데이트 설치 후 최소 30일이 지나야 이전 버전 구성 요소를 자동으로 지우며 그마저도 1시간 제한(Timeout)이 걸려 있습니다.
이 30일의 유예 기간을 기다리지 않고 지금 당장 정리할 수 있는 도구가 바로 DISM(배포 이미지 서비스 및 관리)입니다. 그런데 무조건 정리부터 돌리는 것이 아니라, 먼저 ‘지금 내 PC에서 WinSxS 정리가 실제로 필요한지’ 윈도우에게 직접 물어보는 분석 명령어가 따로 있습니다. 관리자 권한 PowerShell에서 아래 명령어를 입력해 보세요.
DISM /Online /Cleanup-Image /AnalyzeComponentStore
잠시 기다리면 한글 윈도우 기준으로 다음과 같은 분석 보고서가 출력됩니다.
- 탐색기에서 보고된 WinSxS 폴더 크기: 파일 탐색기 속성에서 부풀려져 보이는 크기(하드 링크 때문에 실제보다 훨씬 크게 표시됨)
- 구성 요소 저장소의 실제 크기: 실제로 디스크를 차지하고 있는 정확한 용량
- 공유된 구성 요소 / 백업 및 비활성화된 기능: 시스템과 공유 중이거나 백업으로 잡혀 있는 용량
- 구성 요소 저장소 정리 권장(Component Store Cleanup Recommended):
예(Yes) 또는 아니요(No)
제가 이 명령어를 특히 좋아하는 이유가 바로 마지막 줄에 나오는 ‘구성 요소 저장소 정리 권장’ 항목 때문입니다. 만약 여기에 ‘아니요’가 뜬다면 굳이 정리를 실행해 봤자 확보되는 용량도 미미할뿐더러 불필요하게 시간만 쓰게 됩니다. 즉, “지금은 아무것도 하지 말고 창을 닫으세요”라고 알려주는 정직한 진단 도구인 셈입니다.
반대로 분석 결과에서 회수 가능한 공간이 크고 정리 권장 항목에 ‘예’가 떴다면, 그때 아래의 정리 명령어를 실행하면 됩니다.
DISM /Online /Cleanup-Image /StartComponentCleanup
이 명령어를 실행하면 30일 대기 기간이나 1시간 시간제한 없이 대체된 구버전 업데이트 구성 요소를 즉시 압축·삭제해 수 기가바이트에서 많게는 10~20GB 가까운 여유 공간을 되찾아 줍니다.
여기서 한 가지 꼭 말씀드리고 싶은 주의사항이 있습니다. 인터넷 팁 글을 보다 보면 용량을 극한으로 줄이겠다며 뒤에 /ResetBase 스위치를 붙인 명령어(DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase)를 추천하는 경우가 종종 있습니다.
하지만 Microsoft 공식 문서의 경고문과 원문 필자 모두 강조하듯, /ResetBase를 실행하는 순간 현재까지 설치된 모든 기존 Windows 업데이트를 영구적으로 제거(롤백)할 수 없게 됩니다. 현재 PC가 아무 문제 없이 안정적인지 확신할 수 없다면 일반 사용자 환경에서는 /ResetBase를 빼고 /StartComponentCleanup까지만 실행하시는 편이 훨씬 안전합니다. 또한 탐색기에서 WinSxS 폴더 안의 파일을 마우스로 직접 지우면 부팅 불능 상태에 빠질 수 있으니 절대 수동으로 삭제하시면 안 됩니다.
3) SSD에 조각 모음은 금물: 드라이브 종류를 알아서 구분하는 Optimize-Volume
과거 하드 디스크(HDD) 시절에는 주기적으로 디스크 조각 모음을 해주는 것이 PC 관리의 기본이었습니다. 하지만 요즘 대부분의 PC에 기본 장착되는 SSD(Solid State Drive)는 자기 디스크를 회전시켜 읽는 구조가 아니라 플래시 메모리 셀에 데이터를 기록하기 때문에, 전통적인 조각 모음을 돌리면 속도 향상은커녕 쓰기 수명만 깎아먹게 됩니다.
대신 SSD에는 삭제된 데이터 블록을 미리 비워 다음 쓰기 속도를 유지해 주는 TRIM(트림) 명령이 필요합니다.

만약 지금 쓰고 있는 PC나 노트북에 들어간 보조 드라이브가 SSD인지 HDD인지 헷갈린다면 PowerShell에서 아래 명령어로 1초 만에 확인할 수 있습니다.
Get-PhysicalDisk | Select FriendlyName, MediaType
실행하면 장착된 디스크의 모델명(FriendlyName) 옆에 SSD 또는 HDD라고 명확하게 표시됩니다.
드라이브 종류를 확인했다면 이제 최적화를 진행할 차례입니다. Microsoft Learn의 Optimize-Volume 공식 문서를 보면, 이 명령어는 별도의 세부 옵션을 적지 않아도 대상 드라이브가 HDD이면 조각 모음(-Defrag)을, TRIM을 지원하는 SSD이면 리트림(-ReTrim)을 자동으로 골라 실행하도록 설계되어 있습니다.
먼저 관리자 권한 PowerShell에서 현재 C 드라이브의 조각화 및 최적화 상태를 변경 없이 진단(-Analyze)만 해보려면 아래 명령어를 입력합니다.
Optimize-Volume -DriveLetter C -Analyze -Verbose
이어서 실제 최적화(SSD는 TRIM, HDD는 조각 모음)를 실행하려면 -Analyze만 빼고 입력합니다.
Optimize-Volume -DriveLetter C -Verbose
물론 윈도우 기본 앱인 ‘드라이브 조각 모음 및 최적화’ 창을 열어도 같은 작업을 할 수 있고, 기본적으로 주 1회 자동 실행되도록 예약되어 있습니다. 그럼에도 굳이 PowerShell에서 -Verbose 스위치를 붙여 실행하는 이유는 명확합니다. GUI 창에서는 단순히 퍼센트(%) 막대만 올라가서 지금 무엇을 하고 있는지 알기 어렵지만, -Verbose를 붙이면 현재 분석 중인지, TRIM 신호를 몇 개의 영역에 보냈는지, 여유 공간 통합이 어떻게 끝났는지 실시간 로그로 투명하게 보여주기 때문입니다.
저라면 평소에는 윈도우 자동 예약에 맡겨두되, 수십 기가바이트짜리 대용량 게임이나 영상 작업 파일을 한꺼번에 지운 직후에 한 번씩 Optimize-Volume -DriveLetter C -Verbose를 실행해 SSD의 빈 블록을 깔끔하게 정리해 주는 용도로 활용할 것 같습니다.
4) 재부팅해도 안 고쳐지는 윈도우 오류 수리: DISM /RestoreHealth와 sfc /scannow의 올바른 순서
컴퓨터가 이상할 때 가장 먼저 해보는 조치는 재부팅입니다. 하지만 재부팅은 메모리(RAM)에 올라간 임시 상태를 비워줄 뿐, 디스크에 저장된 윈도우 시스템 파일 자체가 깨졌을 때는 아무리 다시 켜도 증상이 그대로 반복됩니다.
예를 들어 다음과 같은 증상이 나타날 때가 대표적입니다.
- Windows 업데이트가 특정 퍼센트에서 계속 실패하며 오류 코드를 뿜을 때
- 윈도우 설정(Settings) 앱이나 시작 메뉴를 누르면 창이 바로 꺼져버릴 때
- 탐색기나 기본 내장 앱이 특별한 이유 없이 자주 멈추거나 튕길 때
이럴 때 포맷이나 윈도우 재설치로 넘어가기 전에 반드시 거쳐야 할 공식 수리 절차가 바로 DISM 복구 후 SFC(시스템 파일 검사기) 실행입니다(Microsoft Learn Windows 이미지 복구 문서).
여기서 많은 분들이 순서를 거꾸로 실행하곤 하는데, 반드시 DISM을 먼저 실행하고 그다음에 SFC를 돌려야 합니다. 왜냐하면 sfc /scannow는 깨진 시스템 파일을 발견했을 때 내 PC의 구성 요소 저장소(WinSxS)에서 정상 원본 파일을 가져와 덮어씌우는데, 만약 그 원본 창고(WinSxS) 자체에 손상이 있으면 SFC도 복구에 실패하기 때문입니다.
따라서 1단계로 관리자 권한 PowerShell에서 아래 명령어를 먼저 실행해 Windows 업데이트 서버로부터 정상 파일을 내려받아 원본 저장소(WinSxS)부터 치료합니다(인터넷 연결 필수).
DISM /Online /Cleanup-Image /RestoreHealth
진행률이 100.0%에 도달하고 *”복원 작업을 완료했습니다(The restore operation completed successfully)”*라는 메시지가 뜨면, 이어서 2단계로 시스템 파일 검사기를 실행합니다.
sfc /scannow
검사가 100% 완료되면 Windows 리소스 보호(Windows Resource Protection)가 다음 세 가지 결과 중 하나를 알려줍니다.
- 무결성 위반을 찾지 못했습니다: 시스템 파일에 손상이 없는 정상 상태입니다.
- 손상된 파일을 발견하여 성공적으로 복구했습니다: 깨진 파일이 정상 파일로 교체되었으므로 PC를 한 번 재부팅하면 됩니다.
- 손상된 파일을 발견했지만 일부 파일을 복구하지 못했습니다: 이 경우에는 인터넷 연결 상태를 확인한 뒤
DISM /Online /Cleanup-Image /RestoreHealth를 다시 한 번 돌리고 sfc /scannow를 재실행해 보시기 바랍니다.

원문에서도 짚어주었듯 이 두 명령어는 멀쩡한 PC의 속도를 2배로 빠르게 만들어주는 마법의 부스터가 아닙니다. 하지만 시스템 파일 손상 때문에 백그라운드에서 계속 오류 재시도가 일어나며 버벅거리던 PC라면, 손상된 부분을 정상 파일로 메워주는 것만으로도 체감 안정성이 확연히 달라집니다.
개인적인 생각: 서드파티 클리너를 지우고 ‘필요할 때만 꺼내 쓰는’ 관리 습관
지금까지 살펴본 네 가지 PowerShell·명령줄 도구의 공통점은 명확합니다. 별도의 설치 파일(exe)을 내려받을 필요도 없고, 결제 유도 창도 없으며, 작업이 끝나고 터미널 창을 닫는 순간 백그라운드 메모리나 CPU 점유율을 단 1MB도 차지하지 않는다는 점입니다.
개인적으로 주변에서 “컴퓨터가 좀 느려진 것 같은데 어떤 최적화 프로그램을 깔아야 할까?”라고 물어보면, 저는 오히려 설치되어 있는 정체불명의 클리너 프로그램과 중복 백신부터 지우라고 권하는 편입니다. 윈도우 10과 윈도우 11은 이미 자체적인 메모리 관리와 주간 저장소 최적화 스케줄러가 꽤 정교하게 돌아가고 있어서, 평소에는 운영체제가 알아서 하도록 두는 것이 가장 쾌적하기 때문입니다.
그래서 오늘 정리한 명령어들도 매일 강박적으로 실행할 필요는 전혀 없습니다.
- C 드라이브 여유 공간이 갑자기 줄어들었을 때
$env:TEMP 미리보기 정리와 DISM /AnalyzeComponentStore를 한 번 확인해 보고, - 대용량 파일을 대거 정리한 날
Optimize-Volume으로 SSD TRIM을 한 번 날려주고, - 업데이트나 기본 앱이 이상 증상을 보일 때만
DISM /RestoreHealth + sfc /scannow를 순서대로 꺼내 쓰는 정도면 충분합니다.
복잡한 외부 프로그램 대신 메모장이나 블로그 북마크에 오늘 소개한 명령어 네 줄만 적어두시고, 한 달에 한 번 혹은 PC가 답답하게 느껴질 때 가볍게 점검해 보시길 권합니다.