Community程式設計與開發github.com

ArmenSl/windows-debloat

安全地清理並精簡 Windows 10/11 電腦,透過調查、歸檔個人檔案、移除垃圾軟體、精簡開機啟動項目、清除暫存檔案,並將電腦準備為常時開機的伺服器或用戶端主機。

windows-debloat 是什麼?

這個技能(Skill)專為需要將混亂的個人 Windows 電腦轉變為精簡、高效能機器而設計,非常適合將電腦用作伺服器、代理主機、建置機器或家庭實驗室的使用者。它遵循兩條鐵律:個人檔案在複製到其他地方之前絕不銷毀;且在使用者確認清單之前,絕不進行任何刪除或移除操作。該技能支援 Windows 10 與 11,其工作流程包含八大步驟:唯讀調查、分組提問、歸檔個人檔案、清除暫存垃圾、精簡開機啟動、使用智慧型腳本依序移除軟體(處理 MSI、Inno Setup、Office Click-to-Run 等複雜情況)、提供使用者可執行的伺服器設定命令,以及最終的驗證與報告。此技能仰賴高度細心的流程規劃與容錯機制,例如:保護代理程式自身的工作檔案、自動偵測並重試因鎖定而失敗的移除操作,並明確標示「永不移除」的系統核心元件(如 Defender、驅動程式、開發工具與執行時期)。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ArmenSl/windows-debloat/tree/HEAD/skills/windows-debloat

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Windows 精簡

此技能能將一台凌亂的個人 Windows PC 轉變為精簡的機器,且不會遺失使用者在乎的任何東西。這類請求多半模糊且情緒化(「移除所有壞東西、刪掉所有我們不需要的」)。你的工作是將這些請求轉化為一組經使用者核准的具體清單,可靠地執行,並證明結果。

這裡有兩條嚴格規則。在個人檔案存在於其他地方之前,絕不能在本機上銷毀它們。在使用者看到清單之前,絕不能卸載或刪除任何東西。

工作流程

1. 調查(唯讀)

執行隨附的調查腳本;它不會改變任何東西:

powershell -NoProfile -ExecutionPolicy Bypass -File <skill-dir>/scripts/survey.ps1

它會回報磁碟、RAM 和 CPU 資訊、你是否為管理者、使用者資料夾大小(包含 Desktop/Documents/Downloads 中最大的項目)、暫存與更新快取大小、開機啟動項目、已安裝的 Win32 應用程式及其大小、市集應用程式,以及佔用最多記憶體的處理程序。閱讀這些資訊,並將你看到的內容分類到 references/bloat-catalog.md 中的群組。

2. 一次提問,分組進行

如果你有複選題工具,請用它來提問,使用平易近人的語言,並附上大小和 RAM 數字,讓使用者了解每個項目的重要性。涵蓋以下項目,並為每個項目推薦一個預設值:

  • 個人檔案。 將它們移動到一個歸檔資料夾 C:\Archive\<YYYY-MM-DD>\(預設:在同一個磁碟機上立即完成,不會遺失任何東西)、壓縮它們,或者在使用者將歸檔檔案複製到機器外後再進行歸檔和刪除。
  • 應用程式群組。 龐大的第三方垃圾軟體;Windows/OEM 垃圾軟體;個人應用程式(聊天軟體、遊戲、模擬器、VM);開發工具。對於伺服器或用戶端主機,預設保留開發工具,因為用戶端主機需要 Git、Node、Python、編輯器和 JDK。只有在使用者明確要求時才移除它們。
  • 開機啟動項目。 禁用所有非必要項目,或保留雲端同步(例如 OneDrive)。

如果使用者寫了「使用最多代理人/群集」,請簡短解釋 Windows 安裝程式會互相鎖定(MSI 錯誤 1618),因此卸載必須一個接一個地執行。只有唯讀的調查腳本可以拆分執行。

3. 歸檔個人檔案

在同一個磁碟區內使用 Move-Item。這相當於重新命名:立即完成,且檔案保持完整。保留 .lnk 捷徑和 desktop.ini 檔案在原位。計算已移動和失敗的項目數量並回報。除非使用者已確認檔案存在於其他地方(USB、雲端),否則將歸檔檔案保留在機器上。只有在之後才能提議刪除它,並且必須先確認,因為刪除操作無法復原。

4. 清除垃圾,但不傷害自己

  • 在 %TEMP% 中,只刪除超過 1 天的項目,並跳過 claude 資料夾或你自己的暫存區下的任何內容。清除整個 %TEMP% 可能會刪除代理程式自己的工作檔案,包含你即將執行的腳本。
  • C:\Windows\Temp 和 C:\Windows\SoftwareDistribution\Download 需要管理員權限,因此將它們放入提升權限的批次腳本中(步驟 6)。
  • 只有在使用者同意後才清空資源回收筒。

5. 精簡開機啟動項目,並備份

在移除任何 Run 登錄值之前,將 name = command 這類行寫入 <archive>\startup-backup.txt,以便使用者可以恢復他們懷念的項目。HKCU 的 Run 項目不需要管理員權限即可操作;HKLM 的 Run 項目則放入提升權限的批次腳本。絕對不要觸碰 SecurityHealth(Windows 安全性)或音訊、顯示驅動程式項目。

6. 卸載

請依照這個順序執行:

  1. 市集應用程式(無需管理員權限): 針對每個應用程式執行 Remove-AppxPackage。錯誤 0x80073CFA 表示該應用程式受系統保護:回報它並繼續下一個。

  2. 每位使用者專屬的 Win32 應用程式(無需管理員權限): 在 HKCU 下註冊的應用程式(例如 Discord、每位使用者專屬的 Electron 應用程式)。先停止它們的處理程序,然後執行它們的 QuietUninstallString。

  3. 全機適用的應用程式(管理員權限): 使用 scripts/elevated-uninstall.ps1 腳本。它接受應用程式名稱模式,從登錄檔解析出每個卸載命令,寫出一個提升權限的腳本並啟動它,如此使用者只需核准一個 UAC 提示,而不是十個。它會記錄每個步驟並等待結果:

    powershell -NoProfile -ExecutionPolicy Bypass -File <skill-dir>/scripts/elevated-uninstall.ps1 `
      -Patterns 'BlueStacks,WebAdvisor,Duet Display' -RemoveHklmRun 'Opera Browser Assistant' `
      -WorkDir 'C:\Archive\2026-11-08' -CleanSystemTemp
    

    Patterns 是以逗號分隔的正規表示式,用來比對應用程式的顯示名稱。請確保它們夠具體:Microsoft 365 可能會比對到 Office 本身。

    先使用 -DryRun 參數執行,以顯示解析出的命令而不實際執行任何動作。該腳本已經處理了:

    • MSI 應用程式:msiexec /x {GUID} /qn /norestart,當 UninstallString 為空時使用登錄機碼名稱(VMware Player 就沒有卸載字串)。
    • 結束代碼 1618(另一個安裝程式正在執行):它會短暫等待後重試。
    • Office 隨選即用(Project、Visio):ARP 命令加上 DisplayLevel=False。
    • Inno Setup(unins000.exe):/VERYSILENT /NORESTART。
    • 沒有靜默模式的卸載程式(McAfee、Zotero、BlueStacks):它會以互動模式執行它們。在你啟動之前,請告知使用者核准 UAC 提示並點擊這些視窗。
  4. 之後重新查詢登錄檔。任何遺留的項目會再進行一次目標性重試。如實回報其餘的項目。

7. 伺服器設定(由使用者執行)

電源、睡眠、蓋閤與服務設定都是系統設定。將它們以命令的形式提供給使用者,每個命令放在一個程式碼區塊中,並解釋每個命令的作用,讓使用者在具備管理員權限的 PowerShell 中執行:

powercfg /change standby-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
powercfg /setacvalueindex SCHEME_CURRENT SUB_BUTTONS LIDACTION 0
powercfg /setactive SCHEME_CURRENT

選用項目,同樣由使用者決定:在大型清理前建立還原點、設定 Windows Update 使用時間、設定自動登入或「登入後重新啟動應用程式」以實現無人值守使用,並在插電時選擇「平衡」或「高效能」電源計畫。

8. 驗證並回報

測量清理前後的可用空間,並重新檢查應用程式與開機啟動清單。然後回報:

  • 已完成: 歸檔位置與項目數量、已移除的應用程式、已停用的開機啟動項目、已釋放的空間(清理前 → 清理後)。
  • 刻意保留: 開發工具、瀏覽器、Office、安全軟體、驅動程式、執行時期。
  • 留給使用者: 重新啟動電腦、伺服器設定,以及將歸檔檔案從機器上複製出去。

絕不刪除

Defender / Microsoft.SecHealthUI;驅動程式以及音訊、顯示和觸控板的 OEM 驅動服務;Microsoft.WindowsStore;Microsoft.DesktopAppInstaller(winget);Windows Terminal;VC++ 可轉發套件、.NET 與其他架構(IsFramework);Microsoft.XboxIdentityProvider(其他應用程式依賴它);使用者的安全工具(例如 Malwarebytes);使用者正在使用的瀏覽器;代理程式自身執行所在的任何環境。

相關技能