- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 Microsoft Office가 제어판 제거 후에도 남는 구성요소·서비스·레지스트리를 포함하여 완전 삭제하는 표준 절차를 단계별로 제시하여, 재설치 오류나 라이선스 충돌을 예방하고 시스템을 안정화하는 데 도움을 주는 것이다.
1. 시작 전 점검: 설치 형태·아키텍처·버전 식별
Office를 완전 제거하려면 현재 설치 형태(Click-to-Run, Microsoft Store, MSI)를 먼저 식별해야 한다. 또한 32비트(x86) 또는 64비트(x64) 아키텍처와 제품 버전(예: 2016, 2019, 2021, Microsoft 365 Apps)을 확인해야 한다.
| 확인 항목 | 방법 | 예시 |
|---|---|---|
| 설치 형태 | Windows 검색에서 앱 및 기능 또는 제어판의 프로그램 및 기능 확인 | Microsoft 365 Apps(클릭투런), Microsoft Office LTSC 2021 |
| Store 설치 여부 | PowerShell에서 Get-AppxPackage *office* 확인 | Microsoft.Office.Desktop 인스턴스 표시 시 Store 버전이다. |
| 아키텍처 | 작업 관리자에서 Office 프로세스 뒤 (32비트) 표기 또는 설치 경로 확인 | C:\Program Files (x86)\Microsoft Office는 32비트이다. |
| 버전 | Word 실행 > 파일 > 계정 > 제품 정보 | 버전 16.x(Office 2016+ 통합 빌드)이다. |
2. 백업 및 복구 지점 생성
시스템 변경 전에 복구 지점을 만든다. 레지스트리는 내보내기로 스냅샷을 보관한다.
:: 시스템 복원 지점 생성(관리자 PowerShell) Checkpoint-Computer -Description "Before_Office_Manual_Remove" -RestorePointType "MODIFY_SETTINGS"
:: 레지스트리 백업(관리자 명령 프롬프트)
reg export HKLM\SOFTWARE\Microsoft\Office "%USERPROFILE%\Desktop\HKLM_Office.reg" /y
reg export HKCU\Software\Microsoft\Office "%USERPROFILE%\Desktop\HKCU_Office.reg" /y
reg export HKLM\SOFTWARE\WOW6432Node\Microsoft\Office "%USERPROFILE%\Desktop\HKLM_WOW6432_Office.reg" /y
3. 표준 제거: 앱 및 기능에서 제거
가능하면 먼저 공식 제거 절차를 진행한다. 이 단계가 성공하면 잔여 정리만 수행하면 된다.
- 설정 > 앱 > 설치된 앱에서 Microsoft 365 또는 Office 제품을 선택하여 제거한다.
- 재부팅한다.
4. 프로세스·서비스 강제 종료
잔여 정리 또는 강제 제거에 앞서 관련 프로세스와 서비스를 중지한다.
:: 관리자 PowerShell # Office Click-to-Run 서비스 중지 Stop-Service -Name ClickToRunSvc -Force -ErrorAction SilentlyContinue
실행 중인 Office 프로세스 강제 종료
$procs = "WINWORD","EXCEL","POWERPNT","MSACCESS","MSPUB","ONENOTE","OUTLOOK","VISIO","PROJECT","OfficeClickToRun","SetupAria2c","OfficeC2RClient"
foreach($p in $procs){ Get-Process $p -ErrorAction SilentlyContinue | Stop-Process -Force }
인스톨러 큐 정리(선택)
Get-Process msiexec -ErrorAction SilentlyContinue | Stop-Process -Force
5. 설치 형태별 제거 절차
5.1 Click-to-Run(대부분의 Microsoft 365/2016 이후) 완전 제거
Click-to-Run은 스트리밍 배포 구조이므로 ODT(Office Deployment Tool)를 사용한 제거가 가장 신뢰도가 높다.
- 작업용 폴더를 만든다:
C:\ODT이다. - 다음 구성 파일을
C:\ODT\remove-all.xml로 저장한다.
<Configuration> <Remove All="TRUE" /> <Display Level="None" AcceptEULA="TRUE" /> <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" /> <Property Name="SharedComputerLicensing" Value="0" /> </Configuration> - ODT 실행 파일(
setup.exe)을C:\ODT에 두고 다음을 수행한다.
:: 관리자 명령 프롬프트 cd /d C:\ODT setup.exe /configure remove-all.xml 제거가 끝나면 재부팅한다. 실패하거나 ODT 사용이 불가하면 수동 정리를 진행한다.
5.2 Microsoft Store 버전 제거
:: 관리자 PowerShell Get-AppxPackage -Name "Microsoft.Office.Desktop*" | Remove-AppxPackage Get-AppxPackage -Name "Microsoft.MicrosoftOfficeHub" | Remove-AppxPackage 제거 후 재부팅한다.
5.3 MSI 기반(주로 구형 VL) 제거
제어판에서 제품별로 제거가 원칙이다. 실패 시 제품 코드 기반 제거를 시도한다.
:: 관리자 명령 프롬프트 wmic product where "Name like '%%Microsoft Office%%'" call uninstall /nointeractive 6. 라이선스·키 정리(OSPP 스크립트)
볼륨 라이선스(KMS/MAK) 흔적이 남아 재설치 시 인증 오류가 발생할 수 있다. ospp.vbs를 사용해 키를 제거한다.
:: 관리자 명령 프롬프트(경로는 설치 버전에 따라 다름) cd /d "C:\Program Files\Microsoft Office\Office16" cscript ospp.vbs /dstatus :: 노출되는 5자리 끝부분(예: XXXXX)로 키 제거 cscript ospp.vbs /unpkey:XXXXX 키 제거 후 재부팅한다.
7. 잔여 폴더·파일 정리
다음 경로를 확인하여 존재하면 삭제한다. 삭제 전 Office 앱이 모두 종료되어야 하며, 서비스 중지 상태를 유지한다.
| 경로 | 설명 |
|---|---|
| C:\Program Files\Microsoft Office | 64비트 기본 프로그램 폴더이다. |
| C:\Program Files (x86)\Microsoft Office | 32비트 기본 프로그램 폴더이다. |
| C:\Program Files\Common Files\Microsoft Shared\ClickToRun | Click-to-Run 엔진이다. |
| C:\Program Files (x86)\Common Files\Microsoft Shared\ClickToRun | 32비트 Click-to-Run 엔진이다. |
| C:\ProgramData\Microsoft\Office\ClickToRun | 스트리밍 캐시 및 구성이다. |
| C:\ProgramData\Microsoft\Office\Licenses | 일부 버전의 라이선스 토큰 폴더이다. |
| %LOCALAPPDATA%\Microsoft\Office | 사용자 로컬 캐시 및 설정이다. |
| %APPDATA%\Microsoft\Templates | Normal.dotm 등 사용자 템플릿이다. |
| %LOCALAPPDATA%\Microsoft\Outlook | OST 캐시(삭제 주의)이다. |
| %USERPROFILE%\AppData\Local\Microsoft\OneNote | OneNote 로컬 캐시이다. |
:: 관리자 PowerShell - 존재 시만 강제 삭제 $paths = @( "$Env:ProgramFiles\Microsoft Office", "$Env:ProgramFiles(x86)\Microsoft Office", "$Env:ProgramFiles\Common Files\Microsoft Shared\ClickToRun", "${Env:ProgramFiles(x86)}\Common Files\Microsoft Shared\ClickToRun", "C:\ProgramData\Microsoft\Office\ClickToRun", "C:\ProgramData\Microsoft\Office\Licenses", "$Env:LocalAppData\Microsoft\Office", "$Env:AppData\Microsoft\Templates" ) foreach($p in $paths){ if(Test-Path $p){ Remove-Item $p -Recurse -Force -ErrorAction SilentlyContinue } } 8. 예약 작업·서비스 흔적 제거
일부 예약 작업은 제거 후에도 남아 자동 업데이트를 시도한다. 아래 항목을 점검한다.
- 작업 스케줄러 > Microsoft > Office: Office Feature Updates, Office Automatic Updates, OfficeTelemetryAgentLog 등을 비활성화 또는 삭제한다.
- 서비스: ClickToRunSvc가 남아 있으면 제거 또는 사용 안 함으로 설정한다.
:: 관리자 PowerShell - 예약 작업 비활성화 $tasks = Get-ScheduledTask | Where-Object {$_.TaskName -like "Office*"} $tasks | ForEach-Object { Disable-ScheduledTask -TaskName $_.TaskName -TaskPath $_.TaskPath -ErrorAction SilentlyContinue }
:: Click-to-Run 서비스 사용 안 함
sc.exe config ClickToRunSvc start= disabled
sc.exe stop ClickToRunSvc
9. 레지스트리 정리
레지스트리의 Office 키를 정리하면 재설치 시 버전 충돌과 업데이트 실패 가능성을 낮춘다. 삭제 전 반드시 백업을 완료한다.
| 레지스트리 키 | 용도 |
|---|---|
| HKLM\SOFTWARE\Microsoft\Office | 머신 범위 Office 설정이다. |
| HKLM\SOFTWARE\WOW6432Node\Microsoft\Office | 32비트 Office 설정이다. |
| HKCU\Software\Microsoft\Office | 사용자 프로파일 설정이다. |
| HKLM\SOFTWARE\Microsoft\Office\ClickToRun | Click-to-Run 엔진 구성이다. |
| HKCR\Installer\Products\* | 제품 GUID 기반 인스톨러 캐시이다(주의 필요)이다. |
:: 관리자 PowerShell - 핵심 키 제거(백업 필수) $regKeys = @( "HKLM:\SOFTWARE\Microsoft\Office", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office", "HKCU:\Software\Microsoft\Office", "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun" ) foreach($k in $regKeys){ if(Test-Path $k){ Remove-Item $k -Recurse -Force -ErrorAction SilentlyContinue } } 10. 네트워크 설치 캐시·업데이트 구성 제거
조직 배포에서 남은 로컬 구성 파일과 캐시가 업데이트 충돌을 유발할 수 있다.
C:\ProgramData\Microsoft\Office\Deployment Configurations폴더를 확인하고 불필요한 XML을 삭제한다.%ProgramData%\Microsoft\ClickToRun및 임시 다운로드 캐시를 비운다.
11. 재부팅 후 유효성 검사
재부팅 후 다음 항목을 확인한다.
- 앱 및 기능 목록에 Office 계열 항목이 남아 있지 않아야 한다.
- 작업 관리자에 OfficeClickToRun.exe가 나타나지 않아야 한다.
%ProgramFiles%,%ProgramFiles(x86)%,%ProgramData%의 관련 폴더가 제거되어야 한다.- PowerShell에서
Get-AppxPackage *office*결과가 없어야 한다.
12. 재설치 시 권장 순서
- Windows 업데이트를 모두 적용한다.
- 필요 시 Office Deployment Tool로 제품·언어·아키텍처를 명시하여 설치한다.
- 불필요한 추가 앱(Office Hub 등)을 설치하지 않는다.
- 조직 환경은 SharedComputerLicensing 여부를 구성 파일에 명확히 정의한다.
13. 자주 발생하는 문제와 해결
| 증상 | 원인 | 해결 |
|---|---|---|
| 제거 중 “다른 설치가 진행 중” | Windows Installer 또는 Click-to-Run 인스턴스가 실행 중이다. | 프로세스 강제 종료 후 재시도 또는 재부팅한다. |
| 재설치 시 “사용 허가되지 않은 제품” | 이전 라이선스 토큰 또는 잘못된 키 잔존이다. | ospp.vbs로 키 제거 및 C:\ProgramData\Microsoft\Office\Licenses 정리 후 재설치한다. |
| 업데이트 반복 요청 또는 계정 재로그인 무한 루프 | 클라이언트·서비스·캐시 불일치이다. | 완전 제거 후 ODT 재설치, Office 계정 자격 증명 캐시(Windows 자격 증명 관리자) 초기화한다. |
| Outlook 데이터 손실 우려 | OST/PST 경로 미백업이다. | 제거 전 %LOCALAPPDATA%\Microsoft\Outlook과 사용자 문서의 PST를 별도 백업한다. |
14. 자동화 스크립트 예시(엔지니어링 용)
다음 스크립트는 Click-to-Run 잔여 요소 정리 범위를 최소화한 예시이다. 기업 환경은 변경 관리 절차에 따라 적용한다.
#requires -RunAsAdministrator # Office 수동 제거 보조 스크립트(Click-to-Run 포커스) Write-Host "Stopping services and processes..." Stop-Service -Name ClickToRunSvc -Force -ErrorAction SilentlyContinue $procs = "WINWORD","EXCEL","POWERPNT","OUTLOOK","VISIO","PROJECT","ONENOTE","MSACCESS","MSPUB","OfficeClickToRun","OfficeC2RClient","setup" foreach($p in $procs){ Get-Process $p -ErrorAction SilentlyContinue | Stop-Process -Force }
Write-Host "Removing scheduled tasks..."
Get-ScheduledTask | Where-Object {$.TaskName -like "Office*"} | ForEach-Object {
Disable-ScheduledTask -TaskName $.TaskName -TaskPath $.TaskPath -ErrorAction SilentlyContinue
Unregister-ScheduledTask -TaskName $.TaskName -TaskPath $_.TaskPath -Confirm:$false -ErrorAction SilentlyContinue
}
Write-Host "Cleaning folders..."
$paths = @(
"$Env:ProgramFiles\Microsoft Office",
"$Env:ProgramFiles(x86)\Microsoft Office",
"$Env:ProgramFiles\Common Files\Microsoft Shared\ClickToRun",
"${Env:ProgramFiles(x86)}\Common Files\Microsoft Shared\ClickToRun",
"C:\ProgramData\Microsoft\Office\ClickToRun",
"C:\ProgramData\Microsoft\Office\Licenses",
"$Env:LocalAppData\Microsoft\Office",
"$Env:AppData\Microsoft\Templates"
)
foreach($p in $paths){ if(Test-Path $p){ try{ Remove-Item $p -Recurse -Force -ErrorAction Stop } catch{} } }
Write-Host "Cleaning registry..."
$regKeys = @(
"HKLM:\SOFTWARE\Microsoft\Office\ClickToRun",
"HKLM:\SOFTWARE\Microsoft\Office",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office",
"HKCU:\Software\Microsoft\Office"
)
foreach($k in $regKeys){ if(Test-Path $k){ try{ Remove-Item $k -Recurse -Force -ErrorAction Stop } catch{} } }
Write-Host "Disabling ClickToRun service..."
sc.exe config ClickToRunSvc start= disabled | Out-Null
sc.exe stop ClickToRunSvc | Out-Null
Write-Host "Done. Reboot recommended."
15. 현장 적용 체크리스트
| 단계 | 체크 항목 | 완료 |
|---|---|---|
| 사전 준비 | 복구 지점 생성, 레지스트리 백업, 사용자 데이터 백업 | □ |
| 표준 제거 | 앱 및 기능에서 제거 후 재부팅 | □ |
| 프로세스·서비스 | ClickToRunSvc 및 Office 프로세스 중지 | □ |
| 형태별 제거 | ODT 구성 제거 또는 Store/MSI 제거 | □ |
| 라이선스 | ospp.vbs로 키 제거 | □ |
| 잔여 정리 | 폴더·캐시·배포 구성 삭제 | □ |
| 예약 작업 | Office 관련 작업 비활성화/삭제 | □ |
| 레지스트리 | HKLM/HKCU Office 키 정리 | □ |
| 검증 | 재부팅 후 목록·경로·프로세스 확인 | □ |
FAQ
Office 제거 후 재부팅은 반드시 필요한가?
필수이다. 드라이버 수준의 파일 잠금과 서비스 언로드를 보장하기 위해 재부팅 후 검증 절차를 수행해야 한다.
ODT 없이도 완전 제거가 가능한가?
가능하다. 다만 ODT가 제품 구성을 표준 절차로 해제하여 실패 확률이 낮다. 수동 정리는 누락 위험이 있으므로 마지막 수단으로 사용한다.
라이선스 오류(사용 허가되지 않은 제품)가 계속 나타난다.
ospp.vbs로 남은 키를 제거하고, C:\ProgramData\Microsoft\Office\Licenses를 정리한 후 재설치한다. 계정 기반 라이선스는 Windows 자격 증명 관리자에서 Office 관련 항목을 제거하고 다시 로그인한다.
Store 버전과 클릭투런이 섞여 설치된 경우는?
먼저 Store 버전을 제거하고 재부팅한 뒤, Click-to-Run 제거를 수행한다. 혼합 환경은 업데이트 충돌과 계정 루프를 유발하기 쉽다.
조직 환경에서 사용자 데이터 손실을 막으려면?
OST/PST, OneNote 로컬 캐시, 템플릿, 맞춤 사전 등을 사용자별 프로필에서 선백업한다. 배포 전·후 검증 체크리스트를 사용한다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱