services.msc → 停止 OracleService*、Oracle*Listener*、Oracle*DBConsole*、Oracle*JobScheduler* 等所有 Oracle 開頭服務localconfig deleteoracle -delete -asmsid +ASM⚠️ 操作前請匯出註冊表備份
| 註冊表路徑 | 刪除目標 |
|---|---|
| HKLM\SOFTWARE\ORACLE | 整個 ORACLE 金鑰 |
| HKLM\SYSTEM\CurrentControlSet\Services | 所有以 Oracle、OraWeb、OraClrAgnt 開頭的金鑰 |
| HKLM\SYSTEM\CurrentControlSet\Services\Eventlog\Application | 所有以 Oracle 開頭的金鑰 |
| HKLM\SOFTWARE\ODBC\ODBCINST.INI | 除 Microsoft ODBC for Oracle 外含 Oracle 的金鑰 |
| HKCR (HKEY_CLASSES_ROOT) | 以 Ora、Oracle、Orcl、EnumOra 開頭的金鑰 |
| HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs | 以 Oracle 開頭的金鑰 |
%ORACLE_BASE%(預設 C:\app\oracle 或 D:\Oracle)C:\Program Files\Oracle%TEMP%、%TMP% 下 Oracle 相關暫存檔C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Oracle*C:\Windows 下 ORACLE.INI、oradim*.INI、oraodbc.ini 等regedit 搜尋 "Oracle" 應無結果services.msc 無 Oracle 服務# 停止服務
Get-Service -Name "Oracle*" | Stop-Service -Force -ErrorAction SilentlyContinue
Get-Service -Name "Oracle*" | Set-Service -StartupType Disabled
# 刪除註冊表 (需管理員權限)
$paths = @(
'HKLM:\SOFTWARE\ORACLE',
'HKLM:\SYSTEM\CurrentControlSet\Services\Oracle*',
'HKLM:\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle*',
'HKCR:\Ora*', 'HKCR:\Oracle*', 'HKCR:\Orcl*', 'HKCR:\EnumOra*'
)
$paths | ForEach { Remove-Item -Path $_ -Recurse -Force -ErrorAction SilentlyContinue }
# 環境變數
[Environment]::SetEnvironmentVariable('PATH',
([Environment]::GetEnvironmentVariable('PATH','Machine') -split ';' | Where {$_ -notmatch 'Oracle'} ) -join ';', 'Machine')