快訊
2026-07-11
電腦疑難雜症

當機藍屏一閃就重開?先關自動重新啟動、設好記憶體傾印再抓兇手

約 12 分鐘閱讀 · 12 次瀏覽

最後更新日期:2026年07月07日

廣告

⚡ 站長快讀:核心重點

  • 文章屬性:教學實戰(BSOD 除錯前置設定)
  • 適用系統:Windows 10 / 11(含 24H2、25H2)
  • 難易度 / 耗時:入門~中等 / 約 10 分鐘
  • 核心結論:先關掉「自動重新啟動」才看得到停止碼,再把記憶體傾印設成「自動」或「核心」傾印,當機才會留下 MEMORY.DMP 給 WinDbg 分析
  • 適用對象:電腦偶發當機藍屏、想自己找出兇手驅動程式的人

📌 快速答案

一句話答案:當機藍屏想自己抓兇手,先關閉「自動重新啟動」看清停止碼,再把記憶體傾印設成「自動」或「核心」,Windows 當機時就會寫出 MEMORY.DMP 供 WinDbg 分析。


🧰 開始前的準備

  • 適用系統:Windows 10 全版本、Windows 11(含 24H2 / 25H2)
  • 權限需求:系統管理員(改設定與動登錄檔都需要)
  • 需要工具:系統內容視窗(sysdm.cpl)即可;進階做法用命令提示字元或 PowerShell
  • 預計耗時:約 10 分鐘
  • 難度門檻:只要會按 Win + R、會勾選核取方塊就能做完主流程;登錄檔做法屬進階

⚠️ 一個觀念先講清楚:這篇不是要你「修好某支藍屏」,而是幫你把當機現場保留下來。沒有這一步,之後不管用 WinDbg 還是事件檢視器,常常都會落得「什麼都沒抓到」。這是所有 BSOD 除錯的第 0 步。


🔍 為什麼你需要這個?

你一定遇過這個畫面:電腦玩到一半突然當機,螢幕跳出一片藍色(Windows 11 24H2 起改成黑色)寫著一堆英文,你正想拿手機拍下那行停止碼,「啪」一聲電腦自己重開了,什麼都沒留下。下次當機,同樣的戲碼再演一次。

問題出在 Windows 兩個預設就開著、但對除錯很不友善的行為:第一,當機後自動重新啟動,讓你根本來不及抄停止碼;第二,很多人以為當機「什麼紀錄都沒有」,其實 Windows 早就把當機瞬間的記憶體內容寫成記憶體傾印檔(memory dump)了——只是傾印類型、存放位置、分頁檔大小沒設對的話,這個檔案可能根本沒被完整寫出來。

把這兩件事調好,你就從「每次當機都在瞎猜」升級成「當機一次就有一份完整病歷可以查」。這也是為什麼站長我處理當機案例時,第一句話永遠是問「你有沒有傾印檔?」——沒有 dump,神仙也難斷,一切除錯都是空談。

💡 只想先知道「上次為什麼當」而不想動 WinDbg?可以先用內建的事件檢視器看 Event 41 與 BugcheckCode,再回頭照這篇把傾印檔設好做深入分析。


🛠️ 實戰步驟

主流程全程在圖形介面完成,零風險、可隨時改回。進階的登錄檔與 PowerShell 做法放在步驟五,適合要批次部署或遠端設定的人。

步驟一:打開「啟動及修復」設定

  1. Win + R,輸入 sysdm.cpl,按 Enter。(這是跨 Windows 10 / 11 都通用的入口,比在「設定」裡東翻西找可靠。)
  2. 切到最上方的 進階 分頁。
  3. 找到最下面的 啟動及修復 區塊,按 設定(T)…

💡 Windows 11 也可以走 設定 → 系統 → 系統資訊 → 進階系統設定,或直接執行 SystemPropertiesAdvanced 開同一個視窗。

步驟二:關掉「自動重新啟動」

在「啟動及修復」視窗中間的 系統失敗 區,把 自動重新啟動(R) 前面的勾取消

這一步的意義:當機畫面會停在原地不動,你就有時間看清楚、拍下那行停止碼(例如 DRIVER_POWER_STATE_FAILURE)與失敗的驅動程式名稱。設好之後要重開機,手動長按電源鍵或重開即可。

廣告

📌 Windows 11 24H2 起,微軟把當機畫面從藍色改成黑色、拿掉了苦臉與 QR Code,直接顯示停止碼與出錯的驅動程式/元件名稱。畫面更精簡,但也更短——關掉自動重新啟動,才不會一閃即逝。

步驟三:選對「記憶體傾印」類型

同一個視窗下半部的 寫入偵錯資訊,就是決定 Windows 當機時要寫多完整的 dump。點開下拉選單,你會看到這幾種:

傾印類型內容範圍存放位置(預設)分頁檔需求適合誰
(無)不寫不建議,等於放棄除錯
小型記憶體傾印(minidump)只記關鍵資訊,檔案最小%SystemRoot%\Minidump開機磁碟區 ≥ 2MB空間吃緊、只想抓停止碼與兇手模組
核心記憶體傾印只記核心記憶體%SystemRoot%\MEMORY.DMP依 RAM,64 位元約 RAM+128MB大多數人的最佳解
完整記憶體傾印整個實體記憶體%SystemRoot%\MEMORY.DMP≥ 實體 RAM+1MB極少數需要看使用者層記憶體
自動記憶體傾印同核心傾印,但分頁檔可小於 RAM%SystemRoot%\MEMORY.DMP系統自動調整預設值,一般人維持這個就好

📋 重點摘要

  • 一般人:維持預設的 自動記憶體傾印 就好,它內容等同核心傾印,又不會逼你留超大分頁檔。
  • 想每次當機都保留獨立檔案:選 小型記憶體傾印,它每次當機都會在 Minidump 資料夾新增一個檔,不會互相覆蓋,最適合反覆當機時逐次比對。
  • 完整記憶體傾印:除非微軟工程師特別要求,否則不需要——它會吃掉跟你 RAM 一樣大的分頁檔與磁碟空間。
  • 還有一種 主動記憶體傾印(Active dump),介於完整與核心之間、會過濾掉無關頁面,只能從登錄檔設定(見步驟五),桌機用戶用不太到。

站長建議:保留「自動記憶體傾印」+ 額外開啟小型傾印是最實用的組合——核心 dump 給 WinDbg 做深入分析,minidump 則因為每次都獨立留檔,適合快速回顧歷史。

步驟四:確認分頁檔在開機磁碟、且夠大

記憶體傾印能不能寫成功,關鍵在分頁檔(pagefile.sys)。Windows 當機時是先把記憶體內容寫進開機磁碟區的分頁檔,重開機後才搬成 MEMORY.DMP。有兩個常見雷:

  • 分頁檔被搬到其他磁碟或關掉了:傾印就寫不出來。請確認 C 槽(開機磁碟)有啟用分頁檔。
  • 設成固定小值:核心 / 完整傾印需要足夠空間。最保險是讓分頁檔維持 系統管理的大小——搭配「自動記憶體傾印」時,Windows 會自己算出夠用的大小。

檢查路徑:sysdm.cpl進階 → 效能 設定進階 → 虛擬記憶體 變更,確認 C 槽是「系統管理的大小」或有足夠自訂值。

步驟五(進階):用登錄檔 / PowerShell 設定

要遠端或批次部署時,圖形介面就不方便了。所有設定都對應到這個登錄檔機碼:

廣告
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

常用值:AutoReboot(1=自動重開、0=關閉)、CrashDumpEnabled(0=無、1=完整、2=核心、3=小型、7=自動)、DumpFile(MEMORY.DMP 路徑)、MinidumpDir(minidump 資料夾)。主動傾印則是 CrashDumpEnabled=1 再加 FilterPages=1

⚠️ 高風險提醒:以下會變更登錄檔,動手前務必先備份、確認你在改的是本機。以系統管理員身分開啟命令提示字元執行。

做法 A:reg.exe(通用、先備份)

:: 1) 先備份整個 CrashControl 機碼到桌面
reg export "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" "%USERPROFILE%\Desktop\CrashControl_backup.reg" /y

:: 2) 關閉自動重新啟動
reg add "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" /v AutoReboot /t REG_DWORD /d 0 /f

:: 3) 設為自動記憶體傾印(7);要核心改 2、完整改 1、小型改 3
reg add "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 7 /f

做法 B:PowerShell(WMI;wmic 已被移除請改用這個)

過去很多教學教你打 wmic recoveros set AutoReboot=False,但微軟已在 Windows 11 24H2 / 25H2 預設移除 WMIC,這行指令在新系統會直接找不到。改用 PowerShell 的 CIM 指令:

# 安全前綴:管理員權限檢查 + 操作前備份
$IsAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $IsAdmin) { Write-Warning "請以系統管理員身分重新執行此腳本。"; Exit 1 }

# 動登錄檔前先備份 CrashControl
$Reg    = "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl"
$Backup = "$env:USERPROFILE\Desktop\CrashControl_$(Get-Date -Format yyyyMMdd_HHmmss).reg"
& reg.exe export $Reg $Backup /y | Out-Null
if ($LASTEXITCODE -ne 0) { Write-Warning "備份失敗,已中止,未變更任何設定。"; Exit 1 }
Write-Output "✅ 已備份登錄檔:$Backup"

# 用 WMI 類別 Win32_OSRecoveryConfiguration 設定(取代 wmic recoveros)
# DebugInfoType:0=無、1=完整、2=核心、3=小型、7=自動
$rc = Get-CimInstance -ClassName Win32_OSRecoveryConfiguration
Set-CimInstance -InputObject $rc -Property @{ AutoReboot = $false; DebugInfoType = 7 }

# 讀回確認
Get-CimInstance Win32_OSRecoveryConfiguration | Select-Object AutoReboot, DebugInfoType, DebugFilePath

💡 為什麼要這樣做? reg.exe export 把整個機碼備份成 .reg,萬一改壞,雙擊還原即可;先做管理員檢查則能避免「以為改好、其實權限不足悄悄失敗」。

步驟六:驗證傾印真的寫得出來

設定完不代表就會生效,最好驗一次:

  • 看得到資料夾:到 C:\Windows(即 %SystemRoot%)確認有 Minidump 資料夾;完整 / 核心 / 自動傾印則是 C:\Windows\MEMORY.DMP
  • 真的當機一次後回來看:下次真的藍屏後,回到上述路徑看有沒有新檔、時間戳對不對。有檔、大小不是 0,就代表整條鏈路通了。
  • 想主動測試又不想真的搞壞系統,可以搭配 Driver Verifier 完整教學在受控情況下觸發,但那屬於進階操作,請先看完該篇的回退說明再動手。

🔬 底層機制:傾印檔是誰、在哪一層寫出來的?

這一段是選讀,但看懂了你就會知道為什麼「分頁檔要在開機磁碟」這種規定不是刁難。

廣告

當核心偵測到無法復原的錯誤(bug check),它會呼叫 KeBugCheckEx,把停止碼與參數帶進當機流程,然後凍結整個系統——這也是為什麼藍屏當下滑鼠鍵盤都沒反應。此時作業系統已經不能信任一般的檔案系統寫入路徑了(檔案系統驅動本身可能就是兇手),所以它走一條特別安全的低階路徑,把要保留的記憶體內容直接寫進開機磁碟區的分頁檔。這就是為什麼分頁檔一旦被搬走或關掉,傾印就註定失敗。

等你重新開機,工作階段管理員(smss.exe)在開機早期會檢查分頁檔裡有沒有這份「待收的當機資料」,有的話就把它搬出來、整理成 MEMORY.DMP(或在 Minidump 產生一個 minidump),然後在系統記錄檔寫下 Event 1001(BugCheck)。整個傾印設定,說穿了就是登錄檔 CrashControl 機碼裡那幾個值在控制:要不要重開(AutoReboot)、要寫多完整(CrashDumpEnabled)、寫到哪(DumpFile / MinidumpDir)。

理解這條鏈路,你就能秒懂三件事:為什麼傾印檔一定要開機碟有分頁檔、為什麼完整傾印要留跟 RAM 一樣大的空間、以及為什麼有了這份 dump,WinDbg 才能倒帶還原當機當下每一支驅動程式的呼叫堆疊。


🔙 萬一翻車:回退步驟

主流程(圖形介面勾選)本身零風險,隨時打開同一個視窗改回來即可。若你用了步驟五的登錄檔做法出狀況,照下面回退:

情境一:想恢復所有預設

把「自動重新啟動」勾回去、傾印類型選回 自動記憶體傾印;或雙擊你先前匯出的 CrashControl_backup.reg 一鍵還原。

情境二:改完傾印一直寫不出來

多半是分頁檔問題。把 C 槽分頁檔改回 系統管理的大小,重開機再測一次。確認沒有第三方「系統最佳化」軟體偷偷關掉分頁檔或清 MEMORY.DMP

情境三:登錄檔改壞、開機異常

進入 Windows 修復環境(WinRE)(開機三次中斷會自動進入),用命令提示字元把備份的 .reg 匯入,或用系統還原點回到變更前。動 CrashControl 不會影響開機核心,通常不至於到這一步,但備份永遠是保命符。


💡 總結:傾印策略與站長的除錯順序

站長我幫人遠端看當機,最卡的從來不是「看不懂 dump」,而是對方根本沒有 dump 可看——不是自動重開來不及抄碼,就是被某些號稱「加速」的軟體把分頁檔和 MEMORY.DMP 清光。所以我的順序永遠是:先關自動重新啟動、把傾印設好、確認分頁檔在 C 槽,再談分析。這一步做起來只要十分鐘,卻決定了後面能不能查。

給你一組我實務上最推薦的設定:傾印類型維持 自動記憶體傾印(核心等級、又不佔超大空間),真的常當機、想逐次比對的機器再額外開小型傾印,因為 minidump 每次獨立留檔、不覆蓋,最方便追時間軸。完整記憶體傾印除非有人明確要你交,否則別選——它動輒吃掉數十 GB。另外 MEMORY.DMP 每次當機會覆蓋,分析完就可以刪,不必怕它佔空間。

設定好之後,下一步就是真正的分析:把 dump 丟進 WinDbg 跑 !analyze -v。這部分我另外寫了一篇 用 WinDbg 分析 minidump 找出兇手驅動程式,照著三行輸出就能讀出嫌疑模組,接著這篇就能無縫接上。

🔬 證據等級:本文為深度整理型(E3),流程與登錄檔值以微軟官方文件為準(非站長第一手實測數據);文中未列出任何實測秒數或硬體型號,涉及個別機器的傾印大小請以你自己的環境為準。


❓ 常見問題

Q:關掉自動重新啟動,以後當機是不是就一直卡在藍屏不會自己好?

會停在當機畫面等你處理,不會自動重開。這正是我們要的——讓你看清停止碼。看完手動重開即可;它不會造成額外傷害,只是把「自動重開」這個動作交回你手上。

Q:記憶體傾印檔可以刪嗎?會不會刪了就出事?

可以刪。MEMORY.DMPMinidump 裡的檔案都只是「當機病歷」,刪掉不影響系統運作,只是少了那次當機的分析素材。分析完、或確定用不到的舊檔,清掉沒問題;用磁碟清理工具也會列出「系統錯誤記憶體傾印檔」讓你勾選刪除。

Q:我設了核心 / 完整傾印,當機後卻沒有 MEMORY.DMP?

最常見三個原因:一是分頁檔不在開機磁碟或被關掉;二是分頁檔太小,裝不下核心 / 完整傾印所需空間;三是有第三方清理軟體開機時自動刪除。先把分頁檔改回「系統管理的大小」,再當機一次驗證。

Q:不想裝 WinDbg,有沒有更快知道「上次為什麼當」的方法?

有。先用內建的 事件檢視器讀懂當機紀錄,看 Event 41(Kernel-Power)與 BugcheckCode,就能先鎖定停止碼與大致方向;需要精確到哪支驅動時,再回頭用傾印檔配 WinDbg。


🔗 延伸閱讀

📎 參考資料來源

📖 第一級|廠商官方:

📖 第二級|權威技術媒體:

⚠️ 本文核心事實(設定路徑、登錄檔值、傾印類型)以第一級官方為準,第二級僅為畫面外觀變動之補充。

📅 本文查證戳記:2026-07-04 依據 Windows 10 / 11(含 24H2、25H2)官方文件撰寫。若你在後續版本遇到步驟失效,歡迎在留言區回報,站長會更新文章。

廣告