Windows 開機自啟動機制遠不止「啟動」資料夾。註冊表藏有七大核心啟動鍵值,也是惡意軟體、病毒、流氓軟體駐留的重災區。本文系統梳理各鍵值路徑、觸發時機、權限差異,並提供排查清單與防護建議。
shell:startup(%AppData%\Microsoft\Windows\Start Menu\Programs\Startup)shell:common startup(%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup)| 鍵值名稱 | 註冊表路徑(HKCU / HKLM) | 觸發時機 | 執行權限 | 特殊說明 |
|---|---|---|---|---|
| Run | HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
使用者登入時,按序執行 | 當前使用者 | 病毒最愛藏身處;HKLM 需管理員權限寫入 |
HKLM\Software\Microsoft\Windows\CurrentVersion\Run |
系統級(所有使用者) | |||
| Run (Policies) | HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run |
使用者登入時(組策略強制) | 當前使用者 | 常被忽略,組策略推送的強制自啟程式在此 |
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run |
系統級 | |||
| RunOnce | HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce |
下次登入僅執行一次,執行後自動刪除 | 當前使用者 | 安裝程式常用於重開機完成設定;惡意軟體可重寫達到持久化 |
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce |
系統級 | |||
| RunOnceEx | HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx |
WinXP/2003 特有,下次登入依序號執行一次 | 當前使用者 | 現代 Windows 少見,但兼容性保留 |
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx |
系統級 | |||
| RunServices | HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices |
服務控制管理器啟動服務前 | 系統級 | 早期服務註冊方式,現多用 Services 鍵值 |
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices |
系統級 | |||
| RunServicesOnce | HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce |
系統啟動早期僅執行一次 | 系統級 | 極早期初始化任務 |
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce |
系統級 | |||
| Load (Winlogon) | HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\load |
使用者登入初期(Explorer 啟動前) | 當前使用者 | 字串值可含多路徑,逗號分隔;極隱蔽,Rootkit 常駐此 |
| Winlogon | HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon |
登入/登出/螢幕鎖定事件 | 當前使用者 | 關鍵子鍵值:Shell(預設 explorer.exe)、Userinit(預設 userinit.exe,)、Notify(DLL 事件掛鉤)。逗號分隔可掛載多程式,極高危。 |
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon |
系統級 |
taskschd.msc / %SystemRoot%\Tasks / %SystemRoot%\System32\Tasks,觸發條件靈活(閒置、事件、登入、定時)。services.msc / HKLM\System\CurrentControlSet\Services,Start=2 (自動)、Start=3 (手動)。HKLM\System\CurrentControlSet\Services 中 Start=0 (開機載入)、Start=1 (系統啟動載入)。powershell Get-WmiObject -Namespace root\subscription -Class __EventFilter,無檔案落地,極難查殺。HKCR\.\*shell\open\command 修改預設開啟程式。regedit → 依上表路徑逐一檢視,注意:
Winlogon 下 Shell、Userinit、Notify 異常值。Load 鍵值非空。taskschd.msc → 工作排程器程式庫 → 檢視觸發條件與動作。services.msc → 狀態「執行中」且啟動類型「自動」的非 Microsoft 服務,驗證簽章與路徑。reg load HKLM\OFFLINE C:\Windows\System32\config\SOFTWARE)清理,或用離線殺毒工具。註冊表啟動項是 Windows 持久化機制的核心戰場。熟記七大鍵值路徑、觸發時機與權限差異,善用 Autoruns 等專業工具,配合最小權限與白名單策略,才能有效防範惡意軟體駐留,守護系統純淨與啟動速度。