<# Nuke-Adobe-ZeroTrace-Complete.ps1 Adobe 완전삭제 스크립트 (관리자 전용, 동기화 감지 차단 포함, 프로그램목록 정리) - Creative Cloud 동기화(CoreSync/CCXProcess/Adobe Desktop Service) 감지 시 중단 - 프로그램/서비스/작업/폴더(Program Files, ProgramData, AppData, Documents)/레지스트리/Installer 캐시/Uninstall 목록 전부 제거 - 시스템 복원지점 생성 시도 - 관리자 PowerShell로 실행 필요 - ⚠️ 모든 Adobe 관련 데이터 삭제 (복구 불가) #> [CmdletBinding(SupportsShouldProcess)] param( [switch]$WhatIf ) function Assert-Admin { $id=[Security.Principal.WindowsIdentity]::GetCurrent() $p=New-Object Security.Principal.WindowsPrincipal($id) if(-not $p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)){ Write-Error "❌ 관리자 권한 PowerShell로 실행하세요." exit 1 } } Assert-Admin $ErrorActionPreference='Continue' $Host.UI.RawUI.WindowTitle="Adobe ZeroTrace (Complete)" # ---- 동기화 감지 ---- Write-Host "[0] Adobe 동기화 상태 확인..." -ForegroundColor Cyan $sync=@("CoreSync","CCXProcess","Creative Cloud","AdobeDesktopService") $active=Get-Process -ErrorAction SilentlyContinue | Where-Object{ $sync -contains $_.Name } if($active){ Write-Host "🚫 Creative Cloud 동기화 프로세스 감지됨. 삭제 중단." -ForegroundColor Yellow $active|Select-Object -ExpandProperty Name|ForEach-Object{Write-Host " - $_"} exit 0 } # ---- 복원 지점 ---- try{ Write-Host "[1] 복원지점 생성..." -ForegroundColor Cyan Checkpoint-Computer -Description "Pre-AdobeNuke" -RestorePointType "MODIFY_SETTINGS" }catch{Write-Warning "복원지점 생성 실패, 계속 진행."} # ---- 유틸 함수 ---- function Stop-Kill($rx){Get-Process -ErrorAction SilentlyContinue|?{$_.Name -match $rx}|%{try{Stop-Process -Id $_.Id -Force -EA SilentlyContinue}catch{}}} function Remove-PathForce($p){if(Test-Path $p){try{Get-ChildItem $p -Recurse -Force -EA SilentlyContinue|%{$_.Attributes='Normal'};Remove-Item $p -Recurse -Force -EA SilentlyContinue}catch{}}} function Remove-RegForce($rk){if(Test-Path $rk){try{Remove-Item $rk -Recurse -Force -EA SilentlyContinue}catch{}}} function Silent-Uninstall($n,$u){ if([string]::IsNullOrWhiteSpace($u)){return} $exe,$args=$u,'' if($u -match '^\s*"(.*?)"\s*(.*)$'){$exe=$Matches[1];$args=$Matches[2]} elseif($u -match '^\S+\s+'){ $parts=$u -split '\s+',2; $exe=$parts[0];$args=$parts[1]} if($exe -match '(?i)msiexec'){ $exe='msiexec.exe'; $args="$args /qn /norestart"} Write-Host " - 제거: $n" try{Start-Process -FilePath $exe -ArgumentList $args -Wait -WindowStyle Hidden}catch{} } $allHkus=@(Get-ChildItem Registry::HKEY_USERS -EA SilentlyContinue|Select-Object -ExpandProperty Name) # ---- 프로세스 종료 ---- Write-Host "[2] 프로세스 종료..." -ForegroundColor Cyan Stop-Kill 'Adobe|Acro|Creative|CCX|AGS|AGM|CoreSync|IPCBroker|CEF|Tray|ARM|GC' # ---- 서비스 정지/삭제 ---- Write-Host "[3] 서비스 정리..." -ForegroundColor Cyan $svcs=Get-Service -EA SilentlyContinue|?{$_.Name -match 'Adobe|AGM|AGS|CoreSync|Acro|ARM'} foreach($s in $svcs){try{Stop-Service $s.Name -Force -EA SilentlyContinue;Set-Service $s.Name -StartupType Disabled -EA SilentlyContinue;& sc.exe delete $s.Name|Out-Null}catch{}} Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services"|?{$_.PSChildName -match 'Adobe|AGM|AGS|CoreSync|Acro|ARM'}|%{Remove-RegForce $_.PsPath} # ---- 스케줄러 ---- Write-Host "[4] 작업 스케줄러 정리..." -ForegroundColor Cyan try{Get-ScheduledTask -EA SilentlyContinue|?{$_.TaskName -match 'Adobe|Acrobat|Creative|CoreSync'}|%{Unregister-ScheduledTask -TaskName $_.TaskName -TaskPath $_.TaskPath -Confirm:$false -EA SilentlyContinue}}catch{} # ---- Uninstall 실행 ---- Write-Host "[5] 레지스트리 기반 Uninstall..." -ForegroundColor Cyan $roots=@( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") foreach($r in $roots){ Get-ChildItem $r -EA SilentlyContinue|%{ $p=Get-ItemProperty $_.PsPath -EA SilentlyContinue if($p.DisplayName -match 'Adobe|Acrobat|Creative' -or $p.Publisher -match 'Adobe'){Silent-Uninstall $p.DisplayName $p.UninstallString} } } foreach($hku in $allHkus){ $u="Registry::${hku}\Software\Microsoft\Windows\CurrentVersion\Uninstall" if(Test-Path $u){ Get-ChildItem $u -EA SilentlyContinue|%{ $p=Get-ItemProperty $_.PsPath -EA SilentlyContinue if($p.DisplayName -match 'Adobe|Acrobat|Creative'){Silent-Uninstall $p.DisplayName $p.UninstallString} } } } # ---- Program Files / ProgramData ---- Write-Host "[6] 프로그램 폴더 삭제..." -ForegroundColor Cyan $paths=@( "$Env:ProgramFiles\Adobe", "$Env:ProgramFiles(x86)\Adobe", "$Env:ProgramFiles\Common Files\Adobe", "$Env:ProgramFiles(x86)\Common Files\Adobe", "C:\ProgramData\Adobe") $paths|%{Remove-PathForce $_} # ---- 사용자 AppData / 문서 ---- Write-Host "[7] 사용자 데이터 폴더 삭제..." -ForegroundColor Cyan $profiles=Get-ChildItem "C:\Users" -Directory -EA SilentlyContinue|?{$_.Name -notin @("Public","Default","Default User")} foreach($u in $profiles){ $b=$u.FullName foreach($p in @("AppData\Roaming\Adobe","AppData\Local\Adobe","AppData\LocalLow\Adobe","Documents\Adobe")){ Remove-PathForce (Join-Path $b $p) } } # ---- 레지스트리 Adobe 키 ---- Write-Host "[8] 레지스트리 키 정리..." -ForegroundColor Cyan $rk=@( "HKLM:\SOFTWARE\Adobe", "HKLM:\SOFTWARE\WOW6432Node\Adobe", "HKCU:\SOFTWARE\Adobe") $rk|%{Remove-RegForce $_} foreach($hku in $allHkus){Remove-RegForce ("Registry::${hku}\Software\Adobe")} # ---- Installer / Package 캐시 ---- Write-Host "[9] Installer 캐시 제거..." -ForegroundColor Cyan $udRoots=Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData" -EA SilentlyContinue foreach($ud in $udRoots){ $p=Join-Path $ud.PSPath "Products" if(Test-Path $p){ Get-ChildItem $p -EA SilentlyContinue|%{ $pi=Get-ItemProperty $_.PsPath -EA SilentlyContinue if($pi.ProductName -match 'Adobe|Acrobat|Creative'){if($pi.LocalPackage -and (Test-Path $pi.LocalPackage)){Remove-PathForce $pi.LocalPackage};Remove-RegForce $_.PsPath} } } } $pkg=@("C:\ProgramData\Package Cache","C:\Users\*\AppData\Local\Package Cache") foreach($p in $pkg){Get-ChildItem -Path $p -Recurse -Force -EA SilentlyContinue|?{$_.FullName -match 'Adobe|Acrobat|Creative'}|%{Remove-PathForce $_.FullName}} $recheck=@("C:\Program Files (x86)\Common Files\Adobe\AdobeGCClient","C:\Program Files\Common Files\Adobe\AdobeGCClient") $recheck|%{Remove-PathForce $_} # ---- Uninstall 목록 직접 제거 ---- Write-Host "[10] 프로그램 추가/제거 목록 정리..." -ForegroundColor Cyan $allUninstallRoots=@( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") foreach($root in $allUninstallRoots){ Get-ChildItem $root -EA SilentlyContinue|?{ ($_.PSChildName -match 'Adobe') -or ((Get-ItemProperty $_.PsPath -EA SilentlyContinue).DisplayName -match 'Adobe|Acrobat|Creative') }|%{Remove-RegForce $_.PsPath} } # ---- 2차 스윕 ---- Write-Host "[11] 전체 네임 스캔 2차 스윕..." -ForegroundColor Cyan $roots=@("C:\Program Files","C:\Program Files (x86)","C:\ProgramData","C:\Users") foreach($r in $roots){ try{ Get-ChildItem -Path $r -Recurse -Force -EA SilentlyContinue|?{$_.PSIsContainer -and $_.FullName -match 'Adobe|Acrobat|Creative|CoreSync'}|%{Remove-PathForce $_.FullName} }catch{} } Write-Host "`n✅ 완료: Adobe 흔적 및 프로그램목록 완전 삭제." -ForegroundColor Green Write-Host "재부팅 후 설정 → 앱 목록 확인, 남은 항목 있으면 한 번 더 실행." -ForegroundColor Green