跳到主要內容
Mole
概覽 功能 口碑 定價 常見問題 部落格
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES
立即購買購買 下載

    說明、文件、發佈紀錄與文章

    首頁/部落格

    怎麼在 Mac 上解除安裝防毒軟體又不弄壞網路

    解除安裝發布 2026年8月15日更新 2026年8月22日11 分鐘閱讀

    一款防毒產品不是一個 App。除了 App 套件,macOS 那一側還替它保管著一組登記,一個系統延伸功能、一份存起來的網路過濾器設定、一到多個 launchd 工作,通常還有一個特權輔助程式,受管理的 Mac 上再加一份設定描述檔。把套件拖進垃圾桶,移掉的只是前端,每一筆登記都原封不動留著,這就是這類軟體以「移不掉」聞名的原因,也是為什麼第一步該找原廠自己的解除安裝程式,不是 Finder。

    一款資安產品在 App 套件之外裝了什麼

    這一整片安裝面在任何一台 Mac 上都盤點得出來,全部唯讀,大概一分鐘:

    systemextensionsctl list
    ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents
    ls -la /Library/PrivilegedHelperTools
    profiles list
    pkgutil --pkgs | grep -i vendorname
    

    系統延伸功能裝的是檢查檔案和流量的那段程式碼,取代了這類軟體以前用的核心延伸功能,所以那些叫你去刪 .kext 的舊建議,現在已經指不到任何東西。Apple 的系統延伸功能指南寫了它住在哪,「系統延伸功能位於 App 的 Contents/Library/SystemExtensions 資料夾內。」啟用它要你點頭,所以裝資安軟體永遠會跑一趟系統設定。Apple 的部署技術文件還補了移除時最關鍵的一條,以這種方式封裝的提供者「在全域環境中執行,與登入的使用者完全無關」。

    網路內容過濾器或透明代理是另一個獨立的東西,移除之後上不了網,多半就是它。把它打開的那份設定屬於系統,不屬於 App。NEFilterManager 講得很明白:「過濾器設定儲存在 Network Extension 偏好設定中,由 Network Extension 框架管理」,而且只有所屬 App 明確儲存,改動才會生效。

    launchd 工作負責把背景那幾塊拉起來。/Library/LaunchDaemons 在開機時以 root 身分執行,早於任何人登入;/Library/LaunchAgents 在每個使用者登入時執行;~/Library/LaunchAgents 只為你這個使用者執行。這些資料夾裡的 plist 是一筆對 launchd 的登記,不是普通的設定檔。

    /Library/PrivilegedHelperTools 底下的特權輔助程式是一個 root 擁有的可執行檔,配著一個常駐程式,搬檔案之前要先把那個常駐程式從 launchd 卸下來。公司或學校部署的 Mac 上,設定描述檔帶著延伸功能的核准和過濾器的內容,軟體不必問任何人就裝得起來,同一套機制也能把它再裝回去。

    一個防毒安裝程式往外散成好幾樣:應用程式資料夾裡的 App 套件、套件裡的系統延伸功能、存在 Network Extension 偏好設定裡的網路過濾器設定、向 launchd 登記的 daemon 與 agent、一個特權輔助程式,以及一份設定描述檔
    這裡面只有第一樣是你拖得動的檔案,其餘都是 macOS 保管的登記,各有各的所有者,也各有各的移除路徑。

    為什麼拖進垃圾桶不可能有用

    Apple 的文件裡有一個好消息,只是比乍看之下窄,「當使用者刪除對應的 App 時,系統會自動解除安裝任何系統延伸功能。」這句話管的只有套件裡的那個延伸功能,其他登記一個字都沒提,而那些登記沒有一個住在套件裡。

    這裡最常見的抱怨,背後都是那份過濾器設定。它在 Network Extension 偏好設定裡有自己的生命週期,Apple 文件也寫明了,移除它要靠所屬 App 發出一次明確呼叫,而刪掉 App 從來不會發出那一次。剩下的就是一個還開著的過濾器,指向一個已經不存在的提供者,症狀就是大家移除到一半之後回報的那些,DNS 查不到、瀏覽器每一頁都卡住、連線逾時而 Wi-Fi 圖示滿格。網路本身是好的,是流量被交給了一個答不出話的過濾器。

    launchd 工作是第二種故障。刪掉一個可執行檔,不會把啟動它的那筆工作登記取消,只會讓一個原本跑得動的服務變成每次啟動都失敗,而設定成要保持存活的工作會被一輪一輪重試,「解除安裝完風扇反而狂轉」的回報就是這麼來的。反過來也一樣,工作還載入著就先刪 plist,launchd 會把那筆工作一路留到下次重新開機,磁碟上卻什麼都不剩。輔助程式和描述檔活下來的道理相同,而一份帶著軟體內容的描述檔,還會把你剛刪掉的東西再裝一次。

    App 套件被移進垃圾桶,而網路過濾器設定、已載入的 launch daemon、特權輔助程式和設定描述檔全都活了下來,造成 DNS 失敗、反覆重新啟動的迴圈,以及被重新裝回來的軟體
    資安產品移除到一半的症狀,追下去都是同一件事,某一筆登記活得比你刪掉的檔案久。

    這種麻煩是設計出來的

    資安軟體如果任何行程都能靜默解除安裝,那它就沒有價值,因為有本事的惡意軟體第一件事就是把盯著自己的東西移掉。所以 macOS 把生命週期的兩端都放在背景行程搆不到的地方,啟用要有人在系統設定裡按下「允許」(Apple 的提示說明頁在 macOS 15 以後指向「登入項目與延伸功能」,更早的版本是「隱私權與安全性」),停用則要由擁有這個延伸功能的 App 自己發出請求。你感覺到的這份阻力就是那個設計在運作,並不存在一串藏起來的 rm 指令,能代表所謂真正的解除安裝。

    規則:先跑原廠的解除安裝程式

    永遠先跑它,碰其他東西之前就跑。延伸功能的停用請求只有承載它的那個 App 送得出去,過濾器設定只有當初存下它的那個 App 能從 Network Extension 偏好設定裡移除,而哪些元件停錯順序就會把別的元件裝回來,也只有原廠工具知道。第三方解除安裝工具拿不到那些控制權,所以殘留掃描器,包括 Mole,管的是原廠工具跑完之後剩下的東西,永遠不是它的替代品。

    如果你已經把 App 拖進垃圾桶了,用檔案 › 放回原處把它放回去,打開它,用它自己的解除安裝程式。下面各節寫了每家廠商把那個程式放在哪。

    各家廠商的解除安裝程式在哪

    下面每個連結都指向廠商自己的支援網站,最新的步驟在那裡。支援頁面會搬家,兩邊對不上就以那一頁為準,不要照這裡的摘要做。

    McAfee

    解除安裝程式已經在這台 Mac 上,就在應用程式資料夾裡,名字跟著你買的產品走,所以 Total Protection 和 LiveSafe 用的不是同一個。McAfee 的說明要你以管理者身分登入、關掉每一個 McAfee 的 App,再從前往 › 應用程式進去,按兩下那個解除安裝程式。裡面有兩步要照著做,不要自己發揮,macOS 跳出系統延伸功能的提示時要按「允許」,還有最後那個重新開機是編了號的步驟,不是建議。Dock 上可能留下一個已經失效的圖示,得自己拖掉。

    Norton

    同樣是一個已經在應用程式資料夾裡的獨立解除安裝 App。Norton 的解除安裝頁走的是前往 › 應用程式,按兩下 Norton Uninstaller,接著「輸入管理者帳號密碼,然後按 Install Helper」,再輸入一次密碼,最後按 Finish。那個安裝輔助程式的步驟,就是解除安裝程式取得權限、去拆自家系統層元件的方式。

    Avast

    解除安裝功能在 App 裡,它那一頁開頭就先把最明顯的另一條路否掉:「把 Avast Security 移到垃圾桶或使用 Clean My Mac,並不會完整解除安裝這個應用程式。」文件寫的路徑是選單列上的 Avast Security › Uninstall Avast Security,按 Continue,然後輸入 Mac 的開機密碼並按 Install Helper。同一個解除安裝程式也以 Avast Security Uninstaller 的名字放在應用程式資料夾裡,給 App 打不開的時候用。

    Bitdefender

    用的是一支專門的解除安裝執行檔,不是把 App 拖走。解除安裝頁要你打開 Bitdefender 資料夾,按兩下 Bitdefender Uninstaller,勾選產品,按 Uninstall,再輸入管理者的名稱和密碼。同一輪還會問要不要一併移除 Bitdefender VPN,沒打算留就接受,因為那個元件自己也註冊了一個網路延伸功能。

    Malwarebytes

    是 App 裡的一個選單項目。解除安裝說明帶你走選單列的 Help › Uninstall Malwarebytes、一個確認提示,然後是 Mac 的密碼。這一類軟體裡少見的是,同一頁也接受直接用 Finder 移除,等於廠商自己承認,它佔的面積就這麼大。舊的 support.malwarebytes.com 解除安裝文章現在會轉向,請用 help.malwarebytes.com 那一頁。

    Sophos

    兩款產品,兩個答案。消費者版的 Sophos Home 用的是一個獨立的 Remove Sophos Home,從 Spotlight 啟動。那一頁對另一條路講得很直:「請勿把 Sophos Home 拖進垃圾桶,那樣不會解除安裝這個程式。」它會裝一個輔助程式、要你的密碼,還需要重新開機。同一頁另外有一節選用步驟,講事後怎麼移除 Sophos 的系統延伸功能,而那套流程把 systemextensionsctl uninstall 夾在關閉和重新開啟系統完整性保護之間。這一段把界線講得最清楚,就連原廠自己的解除安裝程式,也不一定會把自家的延伸功能一起帶走。那幾步是選用的,廠商自己就這麼標,而系統完整性保護值得一直開著。

    受管理的 Sophos Endpoint 用的是 Launchpad 裡的 Remove Sophos Endpoint,但文件加了一道門:「若已開啟防竄改保護,必須先關閉才能解除安裝 Sophos Endpoint。」那要 Sophos Central 的管理者,或者那個主控台裡保管的逐台裝置密碼,所以公司的 Mac 上,這件事使用者這一側做不了。

    Kaspersky

    在 App 裡,走支援面板。解除安裝頁帶你走 Help › Support、Uninstall、再一次 Uninstall,然後是管理者憑證,並提醒 Chrome 和 Firefox 的擴充功能不會跟著 App 一起走。Kaspersky 另外發布了一支獨立的移除工具 kavremover-mac,給 App 內那條路走不通的時候用。兩頁的日期都是 2024 年,請對照你手上的版本確認。

    如果這台 Mac 受管理,答案在 IT 那裡

    在這件事上耗掉一整晚之前,先確認這個決定到底輪不輪得到你:

    profiles status -type enrollment
    profiles list
    

    第一條不需要管理者權限就印得出 DEP 和 MDM 的註冊狀態,第二條列出為你這個使用者安裝的設定描述檔,同樣的資訊也出現在系統設定 › 一般 › 裝置管理底下。Apple 的裝置管理說明把後果寫得很清楚:「有些描述檔只能由 Mac 的系統管理者移除。如果你無法移除描述檔,你的 Mac 可能是受管理的電腦。」

    受管理的 Mac 上,資安軟體是管理派下來的內容之一。你在本機移除它,描述檔會把它裝回來;你想在本機關掉防竄改保護,關不掉,因為密碼在一個你沒有的主控台裡。去請 IT 把它取消指派。

    驗證真的移乾淨了

    移除到一半的狀況,在這裡逮到還算便宜。等原廠的解除安裝程式跑完、Mac 也重新開機之後再做,因為底下有幾項檢查要重開機之後才說實話。

    1. 系統延伸功能。

    systemextensionsctl list
    

    什麼都沒裝的 Mac 上,輸出只有一行 0 extension(s)。否則每一列會列出 team identifier、延伸功能的 bundle identifier、版本,以及括號裡的狀態。任何一列還帶著你剛移除那家廠商的識別碼,就代表停用沒有完成。這個工具確實提供 systemextensionsctl uninstall <teamID> <bundleID>,也有廠商把這種情況寫進了自己的文件,但只有廠商那一頁叫你這樣做,才動它。

    2. launchd 登記。 到那三個位置找廠商的標籤,再去問 launchd 實際載入了什麼:

    ls -la /Library/LaunchDaemons /Library/LaunchAgents ~/Library/LaunchAgents
    launchctl list | grep -i vendorname
    sudo launchctl list | grep -i vendorname
    

    兩次 launchctl list 回答的是不同問題,第一次看的是你這個登入工作階段,第二次看的是 root 常駐程式所在的系統範圍。有 plist 卻沒有對應的已載入工作,那份 plist 是過期殘留;有已載入的工作卻沒有 plist,那台 Mac 需要重新開機;兩邊都有,就是軟體還在跑。Mole 把這三個位置合成一份清單顯示,那是下一節的事。

    3. 網路過濾器。 註冊過的內容過濾器會在系統設定 › 網路裡以「過濾器」項目出現,沒有這個項目就代表沒有東西註冊。App 都不在了它還列在那裡,弄壞連線的就是它。

    4. 登入項目與延伸功能。 打開系統設定 › 一般 › 登入項目與延伸功能,上面的登入清單和下面的背景項目都要讀。廠商的元件很常在這裡活得比 App 久。

    5. 執行中的行程。 在「活動監視器」裡搜尋廠商名稱,並從顯示方式選單切到「所有程序」,這樣 root 擁有的常駐程式才會被算進來。重新開機之後結果是空的,就是你要的那個確認。

    6. 安裝收據。 pkgutil --pkgs | grep -i vendorname 會列出安裝程式寫過什麼,等活著的元件都清掉之後,這份清單會告訴你 ~/Library/Application Support 底下有哪些路徑值得逐項過目。

    前三項檢查都乾淨,這款產品就已經離開這台機器了,剩下的都只是磁碟空間,不是行為。

    Mole 在這裡做什麼,又拒絕做什麼

    解除安裝的審核畫面,其中一款 App 展開後顯示它的套件,以及 ~/Library/Application Support 和 ~/Library/HTTPStorages 裡的殘留項目,每一項都帶大小和勾選框,底部是移除按鈕
    一次解除安裝會動到的每一項,在任何東西移動之前都連路徑和大小一起列出來。信心不足的列預設不勾,所以預設動作永遠是比較小的那個。

    Mole 的 Software 分頁把已裝 App 和開機啟動項目放在同一個畫面,所以一款產品註冊的 launch agent、launch daemon 和登入項目,就排在註冊它們的那個 App 旁邊,每一項都帶真實路徑。

    殘留這一塊,Mole 比對的是 bundle 身分而不是名稱,它認得的系統層路徑就是上面那些:/Library/LaunchDaemons/<bundle-id>.plist、/Library/LaunchAgents/<bundle-id>.plist、/Library/PrivilegedHelperTools/<bundle-id>,以及 /private/var/db/receipts 底下的安裝收據。系統層的每一個命中都只供審核,也就是預設不勾,路徑由你讀過之後一條一條加進來,不是從一份先打好勾的清單裡往外挑。刪除走垃圾桶,弄錯了是從垃圾桶拖回來,略過和失敗的項目都會回報,全部在本機執行。

    有兩件「不做」比上面所有事情都重要。Mole 會掃 /Library/SystemExtensions,看正在移除的那個 App 有沒有自己的延伸功能,找到就跳一則提示點名它,並說明 App 消失之後它可能還留著。停用這件事 Mole 不去嘗試,因為做不到,那個請求必須由所屬 App 發出。另外有一批廠商的產品被鎖住、受管理,或者拆著移除就會出事,ESET、CrowdStrike、SentinelOne、Jamf、Palo Alto GlobalProtect 和 Cisco Secure Client 都在裡面,這些 Mole 根本不接,直接指向廠商官方的解除安裝程式。

    這條邊界說得毫不含糊,這一頁其餘的內容才值得信:Mole 不處理惡意軟體,不是備份,遇到帶驅動程式、VPN 元件或系統延伸功能的軟體也取代不了原廠的解除安裝程式。防毒軟體這一類,Mole 的工作要等原廠解除安裝程式跑完之後才開始。終端機裡,免費開源的 Mole CLI 用 mo uninstall 做同一份審核,每個具破壞性的指令都吃 --dry-run,讓你先把路徑清單讀過一遍。

    常見問題

    刪掉防毒軟體之後就上不了網了,該怎麼辦?

    幾乎可以確定是那份網路過濾器設定活得比 App 久。它住在 Network Extension 偏好設定裡,由框架獨立於套件管理,所以刪掉 App 只會留下一個還開著的過濾器,指向一個已經不在的提供者。到系統設定 › 網路看有沒有「過濾器」項目,再用 systemextensionsctl list 看有沒有活下來的延伸功能。修法是把廠商的產品裝回來,然後跑它自己的解除安裝程式。把正想移除的軟體重新裝一次,感覺很不對,但那確實是最短的一條路。

    我可以直接刪掉 /Library/LaunchDaemons 裡的 plist 嗎?

    不能當第一步,也很少該當最後一步。那裡的 plist 是一筆對 launchd 的登記,工作還載入著就把檔案刪掉,那筆工作會一路跑到下次重新開機,而磁碟上沒有任何東西解釋得了它。等原廠的解除安裝程式跑完、Mac 重新開機、sudo launchctl list 也看不到對應的已載入工作,留下來的那份 plist 才是沒有作用的殘留。軟體還裝著,它的 plist 就永遠不要動。

    原廠的解除安裝程式要了密碼卻失敗,接下來呢?

    檢查三件事。這台 Mac 是不是受管理的,如果是,擋住移除的是防竄改保護或描述檔,答案在 IT 那裡。產品是不是還在跑,有些解除安裝程式在自家常駐程式還開著檔案時跑不完,重新開機再試一次。還有解除安裝程式是不是最新的,有些廠商另外發布一支獨立的移除工具,跟 App 內那條路不是同一個。三件都沒問題,下一站是廠商的技術支援。

    檢查它走了沒有之前,需要先重新開機嗎?

    需要。延伸功能拆除和 launchd 取消登記都要跨過一次開機才算完成,所以解除安裝程式一跑完就檢查,可能看到一堆其實已經排定要消失的殘留,也可能反過來漏掉一個等一下還會回來的常駐程式。

    延伸閱讀

    • 如何徹底解除安裝 Mac 上的 App,講一般的流程、bundle identifier 和共用容器。
    • 解除安裝 Mac App 之後的殘留怎麼清,講活著的元件都確認清乾淨之後剩下的東西。
    • Mac 清理工具絕不該刪的東西,講同一個判斷的另一面。

    Mole 是一個原生 Mac App,騰出空間、管理 App、維護系統、看清磁碟和即時狀態都在裡面,一次買斷不用訂閱。

    看看 Mole

    繼續閱讀

    • 解除安裝如何在 Mac 上徹底解除安裝 App,又不誤刪資料5 分鐘閱讀
    • 解除安裝Mac App 解除安裝不掉:七個成因,每個一種症狀10 分鐘閱讀
    • 解除安裝Mac 上解除安裝 Java,別弄壞工具鏈3 分鐘閱讀

    Mole · 鼴

    Mac 清理、軟體與狀態工具。

    v1.13.0 (166) · 發佈紀錄

    支援

    說明 功能文件 發佈紀錄

    法律

    服務條款 隱私權政策 退款政策

    資源

    部落格 命令列工具 夥伴推廣

    聯絡

    Twitter hi@mole.fit

    請認明官方網站 mole.fit · 避免下載到來路不明的版本

    命令列版會繼續免費開源。