最後更新日期: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 做法放在步驟五,適合要批次部署或遠端設定的人。
步驟一:打開「啟動及修復」設定
- 按 Win + R,輸入
sysdm.cpl,按 Enter。(這是跨 Windows 10 / 11 都通用的入口,比在「設定」裡東翻西找可靠。) - 切到最上方的 進階 分頁。
- 找到最下面的 啟動及修復 區塊,按 設定(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.DMP 與 Minidump 裡的檔案都只是「當機病歷」,刪掉不影響系統運作,只是少了那次當機的分析素材。分析完、或確定用不到的舊檔,清掉沒問題;用磁碟清理工具也會列出「系統錯誤記憶體傾印檔」讓你勾選刪除。
Q:我設了核心 / 完整傾印,當機後卻沒有 MEMORY.DMP?
最常見三個原因:一是分頁檔不在開機磁碟或被關掉;二是分頁檔太小,裝不下核心 / 完整傾印所需空間;三是有第三方清理軟體開機時自動刪除。先把分頁檔改回「系統管理的大小」,再當機一次驗證。
Q:不想裝 WinDbg,有沒有更快知道「上次為什麼當」的方法?
有。先用內建的 事件檢視器讀懂當機紀錄,看 Event 41(Kernel-Power)與 BugcheckCode,就能先鎖定停止碼與大致方向;需要精確到哪支驅動時,再回頭用傾印檔配 WinDbg。
🔗 延伸閱讀
- 0x139 KERNEL_SECURITY_CHECK_FAILURE BSOD 修復|WinDbg 抓真兇 driver
- BSOD 出現 WHEA_UNCORRECTABLE_ERROR?用 WinDbg 實戰分析
- 藍白當機 (BSOD) 考古學:從 Windows 98 災難現場到 2026 年 WinDbg 核心除錯全攻略
- 電腦睡一睡、關機就藍屏?DRIVER_POWER_STATE_FAILURE(0x9F)先揪出這支驅動程式
📎 參考資料來源
📖 第一級|廠商官方:
- Configure system failure and recovery options in Windows(Microsoft Learn) — 2026-07-04 查證(官方更新日 2026-02-12)
- Memory dump file options(Microsoft Learn) — 2026-07-04 查證
- Automatic Memory Dump(Microsoft Learn / Windows drivers) — 2026-07-04 查證
- WMIC 從 Windows 移除公告(Microsoft Support) — 2026-07-04 查證
📖 第二級|權威技術媒體:
- Microsoft redesigns Windows 11 24H2’s BSOD(Windows Latest) — 2026-07-04 查證(當機畫面改黑色一事之補充)
⚠️ 本文核心事實(設定路徑、登錄檔值、傾印類型)以第一級官方為準,第二級僅為畫面外觀變動之補充。
📅 本文查證戳記:2026-07-04 依據 Windows 10 / 11(含 24H2、25H2)官方文件撰寫。若你在後續版本遇到步驟失效,歡迎在留言區回報,站長會更新文章。