本帖最後由 as89725671 於 2026-8-11 10:56 編輯
近期,微軟(Microsoft)旗下的資深工程師 Howard Kapustein 於自家部落格發文,深入剖析 Windows 作業系統中軟體移除的真實運作機制。他得出一個令人驚訝的結論:當使用者點擊「移除(Uninstall)」後,軟體往往並未真正從電腦中消逝。
傳統 Win32 軟體痛點:移除權限完全落於廠商之手
傳統 Win32 應用程式的移除流程存在一個根本性缺陷——Windows 系統本身並不直接掌控清除細節,而是呼叫軟體開發商自行撰寫的移除程式(Uninstaller)。
換言之,軟體能否徹底清空,幾乎完全取決於開發商的良心與技術。若開發商並未在移除程式中寫入完整的清理邏輯,軟體運作期間產生的使用者偏好設定、快取檔案(通常部位於 %AppData% 或 %LocalAppData% 隱藏目錄下);
以及系統登錄檔鍵值(HKEY_CURRENT_USER 或 “HKEY_LOCAL_MACHINE` 下的項目),便會被原封不動地保留在硬碟中。
儘管部分廠商係出於善意,故意保留設定檔以利使用者未來重新安裝時能無縫銜接;但若使用者壓根不打算再次使用該軟體,這些殘留檔案便淪為永久的系統垃圾。此外,當多款應用程式共用同一套 .dll 動態連結庫或系統組件時,移除程式為了避免誤刪而導致其他軟體崩潰,通常會採取保守策略選擇保留這些共享檔案。
龐大快取默默佔用空間,背景服務持續消耗 CPU 與記憶體
大型軟體產生的快取與暫存檔案往往高達數 GB。即便主程式已被移除,這些肥大檔案依然會死死佔據硬碟空間。Kapustein 指出,單一軟體殘留的垃圾或許不足以讓電腦立即卡頓,但日積月累下來的冗餘資料相當可觀。
更為隱蔽的效能陷阱在於,部分軟體安裝時隨附的自動更新服務或背景監控程式;若主程式被移除後未被一併清空,開機時仍會默默於背景自動啟動,持續佔用寶貴的 CPU 與記憶體資源。
微軟工程師給出三大清查防禦建議:
優先透過 Microsoft Store 安裝軟體:商店應用程式採用 MSIX/UWP 封裝機制,具備獨立的「沙盒隔離」與專屬目錄設計。當使用者選擇移除時,系統可直接刪除其專屬的登錄檔分支與隔離目錄,達成接近 100% 的無痕清除。
手動清理隱藏資料夾:使用者可定期進入 %AppData% 及 %LocalAppData% 隱藏資料夾,手動檢查並刪除已廢棄軟體的殘留資料夾。
清查背景遺留服務:透過 Windows 工作管理員的「啟動」頁面,或按下 Win + R 輸入 services.msc 開啟服務管理視窗,排查並關閉已移除軟體所遺留的背景服務項目。
|