← 返回
未分类

windows蓝屏分析

诊断 Windows 蓝屏/崩溃/意外重启问题。当用户提到电脑蓝屏、BSOD、系统崩溃、意外重启、死机、黑屏、关机原因、强制关机、MiniDump、bugcheck、Kernel-Power 事件、WinDbg 分析、驱动崩溃、SYSTEM_SERVICE_EXCEPTION、CRITICAL_PROCESS_DIED、PAGE_FAULT_IN_NONPAGED_AREA、待机无法唤醒、睡眠后黑屏、合盖死机、电脑自动重启、windows 崩溃等任何系统不稳定问题时,必须使用此 skill。即使用户没有明确说"诊断"二字,只要描述的是系统崩溃/死机/蓝屏相关的症状,都应触发此 skill。
诊断 Windows 蓝屏/崩溃/意外重启问题。当用户提到电脑蓝屏、BSOD、系统崩溃、意外重启、死机、黑屏、关机原因、强制关机、MiniDump、bugcheck、Kernel-Power 事件、WinDbg 分析、驱动崩溃、SYSTEM_SERVICE_EXCEPTION、CRITICAL_PROCESS_DIED、PAGE_FAULT_IN_NONPAGED_AREA、待机无法唤醒、睡眠后黑屏、合盖死机、电脑自动重启、windows 崩溃等任何系统不稳定问题时,必须使用此 skill。即使用户没有明确说"诊断"二字,只要描述的是系统崩溃/死机/蓝屏相关的症状,都应触发此 skill。
古凡
未分类 community v1.0.0 1 版本 98550.7 Key: 无需
★ 0
Stars
📥 68
下载
💾 0
安装
1
版本
#latest

概述

Windows 蓝屏与系统崩溃诊断

能力边界

首先确认本 skill 是否适用,以下是明确的三分类:

✅ 擅长处理

  • 系统蓝屏后诊断崩溃原因(分析 dump 文件和事件日志)
  • 意外重启/关机后追溯根因
  • 待机/休眠无法唤醒问题的诊断
  • 频繁蓝屏的模式分析和趋势判断
  • WinDbg 分析结果的解读和补充分析
  • 第三方驱动冲突识别(安全软件、显卡、网卡等)

示例: "最近一周蓝屏了3次"、"电脑待机后黑屏打不开"、"WinDbg 显示 win32kfull.sys 崩溃"

⚠️ 需要用户提供素材

  • WinDbg 深入分析需要用户提供 minidump 文件(.dmp)
  • 驱动更新需要用户访问制造商官网
  • 硬件诊断(内存测试等)需要用户配合执行工具
  • 非 Windows 系统:本 skill 仅支持 Windows 10/11

示例: "帮我看下这个 dmp 文件" → 可以分析,但需要用户先提供 WinDbg 输出

❌ 超范围

  • 应用程序崩溃但不导致蓝屏(用事件查看器即可)
  • 性能问题、卡顿但不崩溃 → 用任务管理器/性能监视器
  • Linux/macOS 系统崩溃 → 需要其他工具
  • 移动设备(手机/平板)崩溃
  • 硬件物理损坏的诊断(需要现场检测工具)

快速入门

如果你是第一次用,直接告诉 Claude 下面任意一句话即可开始:

  • "帮我分析一下最近一次关机是什么原因?"
  • "电脑这几天频繁蓝屏,帮我看看怎么回事"
  • "昨晚电脑待机后早上就打不开了,只能强制关机"
  • "我用 WinDbg 分析了 dump,显示 xxx.sys 崩溃,你帮我整体分析下"

诊断会自动进行,无需你手动操作。完成后会生成一份结构化的诊断报告。


诊断流程

重要约束:禁止凭空猜测。每一步的诊断结论必须引用具体的 Event ID、时间戳或数据作为证据。如果某一步没有查到数据,必须明确说明"未找到相关记录",而不能编造。

按以下步骤顺序进行诊断。可在 bash 中执行 PowerShell 命令(Windows 环境),或运行 scripts/ 目录下的预置脚本。

步骤 1:快速定位关机事件

运行 scripts/check_shutdown_events.ps1,或执行等价 PowerShell 命令,获取最近 30 次关机事件。

关键事件 ID:

Event ID来源含义
----------------------
41Kernel-Power非正常关机。BugcheckCode ≠ 0 = 蓝屏,= 0 = 强制断电
1074User32用户/程序主动重启(正常)
6006EventLog事件日志服务正常停止(正常)
6008EventLog上一次关机是意外的
506Kernel-Power系统进入待机
507Kernel-Power系统从待机唤醒

从 Event 41 的 Properties 提取 BugcheckCode(十进制),转十六进制即可获得 Bugcheck 代码。

步骤 2:解析蓝屏详情

如果确认是蓝屏,运行 scripts/check_crash_detail.ps1

2a. WER 系统错误报告(System Log, Event 1001):

Get-WinEvent -FilterHashtable @{LogName='System'; Id=1001; StartTime=(Get-Date '<DATE>')} -MaxEvents 10

输出包含 Bugcheck 代码 + 4 参数、MEMORY.DMP 路径、Minidump 路径。

2b. Minidump 文件列表:

Get-ChildItem C:\Windows\Minidump\*.dmp | Sort-Object LastWriteTime -Descending

将 minidump 时间与 Event 41 时间对齐,确认每次蓝屏的对应文件。

2c. WHEA 硬件错误(关键遗漏项):

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-WHEA-Logger'; StartTime=(Get-Date).AddDays(-14)} -MaxEvents 10

WHEA Event ID 1 表示硬件级错误,如果存在则强烈指向硬件不稳定。

2d. LiveKernelEvent 转储(关键遗漏项):

Get-ChildItem C:\Windows\LiveKernelReports -Recurse -Filter *.dmp -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending | Select-Object -First 10

LiveKernelEvent 0x124 代表 WHEA 不可纠正错误,0x144 代表 USB 故障,0x15E 代表网卡驱动请求重置。

步骤 3:崩溃上下文分析

针对最近一次蓝屏时间,查崩溃前的 System 日志:

Get-WinEvent -FilterHashtable @{LogName='System'; StartTime=(Get-Date '<START>'); EndTime=(Get-Date '<END>')} -MaxEvents 100 | Sort-Object TimeCreated

必查项:

  • FilterManager 事件 — 第三方过滤驱动加载警告
  • Service Control Manager — 服务异常停止
  • Netwtw16/Wi-Fi 事件 — 网卡驱动异常
  • Kernel-PnP 事件 219/411 — 设备驱动加载失败

Application 日志中的连锁反应(关键遗漏项):

  • WER Event 1001:应用程序崩溃报告 → 看是否有 GDI 泄漏或进程反复崩溃
  • Event 1000:Application Error → 看崩溃模块名

步骤 4:GDI 资源泄漏检查(关键遗漏项)

如果 WinDbg 或日志指向 win32kfull.sys 或 GDI 相关崩溃:

Get-WinEvent -LogName 'Application' -MaxEvents 2000 | Where-Object { $_.Id -eq 1001 -and $_.Message -match 'GDI|GDIObjectLeak' }

GDI 对象泄漏会导致 win32kfull 内核态资源耗尽,触发空指针崩溃。通常由终端模拟器(MoTTY/MobaXterm/ConEmu)等频繁渲染 GDI 的应用触发。

步骤 5:第三方驱动年龄审计

列出所有非 Microsoft 的内核驱动及其版本日期:

Get-CimInstance Win32_PnPSignedDriver | Where-Object { $_.DriverProviderName -notmatch 'Microsoft' -and $_.DeviceName -match 'Non-Plug|System|Filter|Legacy' } | Select-Object DeviceName, DriverVersion, DriverDate, DriverProviderName | Sort-Object DriverDate

判断标准:

  • 驱动日期早于 2021 年 → 可能不兼容 Windows 11 24H2
  • 多个厂家的过滤驱动同时存在 → 可能产生堆栈冲突
  • 驱动日期与 Windows 版本发布日期接近 → 兼容性较好

步骤 6:待机/唤醒问题专项

如果用户描述涉及待机异常,额外执行:

6a. 确认睡眠模式: powercfg /a — S0 现代待机 vs S3 传统睡眠

6b. 睡眠-唤醒时间线:

Get-WinEvent -FilterHashtable @{LogName='System'; Id=506,507; StartTime=(Get-Date).AddDays(-3)} | Sort-Object TimeCreated

6c. 资源耗尽检测:

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-Resource-Exhaustion-Detector'; StartTime=(Get-Date).AddDays(-3)} | Sort-Object TimeCreated

该事件会列出内存占用 Top 3 进程。如果 explorer.exe 超过 500MB 或任意进程超过 1GB,说明存在内存泄漏。

6d. 唤醒源: powercfg /lastwakepowercfg /waketimers

步骤 7:硬件与环境信息

Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, TotalPhysicalMemory
Get-CimInstance Win32_BIOS | Select-Object Manufacturer, Name, Version, ReleaseDate
Get-CimInstance Win32_PhysicalMemory | Select-Object Manufacturer, PartNumber, Capacity, Speed, DeviceLocator
  • 单根内存条 → 无 ECC 冗余,硬件错误的后果更严重
  • BIOS 超过 6 个月未更新 → 可能存在 Modern Standby 兼容性修复

步骤 8:WinDbg 分析(如需要)

如果步骤 1-5 无法确定根因,引导用户使用 WinDbg。不要自行编造 WinDbg 结果。 详见 references/windbg_guide.md

要求用户提供:IMAGE_NAME、PROCESS_NAME、FAILURE_BUCKET_ID、STACK_TEXT(前 10 行)。

解读规则:

  • IMAGE_NAME = .sys 驱动 → 该驱动存在 bug
  • IMAGE_NAME = ntoskrnl.exe → 第三方驱动导致内核崩溃,看 STACK_TEXT 定位真实驱动
  • IMAGE_NAME = .exe + PROCESS_NAME 同名 → 应用程序通过 GDI/系统调用触发了内核 bug
  • FAILURE_BUCKET_ID 含 AV_ → 空指针/访问违例
  • STACK_TEXT 中出现第三方驱动 → 该驱动为责任方

异常处理

情况处理方式
----------------
事件日志为空/被清除告知用户无法获取历史数据,建议等待下次崩溃后再诊断。检查是否有清理日志的定时任务
非 Windows 系统提示本 skill 仅支持 Windows,建议用户说明实际系统
没有管理员权限部分命令可能失败(如 powercfg /energy),说明哪些信息因权限不足无法获取
找不到 minidump检查系统是否配置了写入调试信息:wmic RECOVEROS get DebugInfoType。值为 0 表示未配置
用户描述模糊(如"电脑卡")先问清是蓝屏死机还是性能卡顿。如果是后者,本 skill 不适用,建议用任务管理器排查

FAQ

Q1: 为什么需要管理员权限?

A: 读取系统事件日志和 minidump 文件需要管理员权限。如果权限不足,部分命令会失败。

Q2: MEMORY.DMP 和 minidump 有什么区别?

A: MEMORY.DMP 是完整内存转储(可能 10-20GB),minidump 是精简版(通常 5-10MB)。日常诊断 minidump 足够,WinDbg 分析不受影响。

Q3: BugcheckCode=0 但系统确实崩溃了是怎么回事?

A: 说明是强制断电(长按电源键)或电源中断,Windows 来不及写入崩溃信息。

Q4: 为什么建议去制造商官网而非 Windows Update 下载驱动?

A: 制造商认证驱动经过了特定机型的兼容性测试,而 Windows Update 推送的通用版驱动可能在特定硬件组合上不稳定。

Q5: 单根内存条和两根有什么区别?

A: 单根内存无冗余,硬件错误直接导致蓝屏。两根组成双通道支持 ECC 或至少有关联校验,不容易出现随机 bit 错误。

Q6: Modern Standby (S0) 和传统睡眠 (S3) 哪个更好?

A: S0 唤醒更快但后台仍在活动(易导致待机中崩溃),S3 更稳定但唤醒较慢。如果频繁待机崩溃,改休眠是最稳妥的方案。

Q7: 诊断结果无法确定唯一根因怎么办?

A: 多种 Bugcheck 交替出现通常指向硬件问题(内存、CPU)。先跑 mdsched.exe 内存诊断,排除硬件后再排查驱动。


常见错误用法

错误做法问题正确做法
--------------------------
只看 Event 41 不看 Event 1001错过 Bugcheck 代码和参数同时查 WER Event 1001 获取完整崩溃参数
发现 IMAGE_NAME=ntoskrnl.exe 就说是内核 bug99% 情况下是第三方驱动导致内核崩溃看 STACK_TEXT 定位真正的第三方驱动
发现一个可疑驱动就下结论多样 Bugcheck 类型通常不是单一驱动问题综合模式分析 + WHEA 硬件错误 + 驱动年龄审计
漏查 LiveKernelReports错过 WHEA 0x124 等硬件错误证据每次都检查 C:\Windows\LiveKernelReports
忽略 DriverDate 只看 DriverVersion版本号格式不一致无法对比用 DriverDate 判断驱动是否过时更可靠

诊断报告模板

每轮诊断完成后必须使用此模板,不要自定义格式

## [最近一次关机/蓝屏/待机异常] 分析 — YYYY-MM-DD HH:MM

### 基本信息
| 项目 | 详情 |
|------|------|
| 电脑型号 | |
| 系统版本 | |
| 内存 | |
| 时间 | |
| 类型 | [正常关机/蓝屏崩溃/强制断电/待机卡死] |
| Event ID | |
| Minidump | |

### 蓝屏详情(如有)
| 参数 | 值 | 含义 |
|------|------|------|
| Bugcheck | **0x___** | |
| 故障驱动 | | |
| 故障进程 | | |
| 故障函数 | | |

### 时间线
| 时间 | 事件 ID | 说明 |
|------|---------|------|

### 历史异常汇总
| 日期 | Bugcheck | 驱动/进程 | 模式 |
|------|----------|-----------|------|

### 根因分析
[必须引用具体证据(Event ID + 数据),区分直接原因和深层原因]

### 建议
按优先级排列,每个建议都是可执行的具体操作

参考资源

  • scripts/check_shutdown_events.ps1 — 关机事件快速扫描
  • scripts/check_crash_detail.ps1 — 蓝屏详情(WER + minidump + LiveKernelEvent)
  • references/windbg_guide.md — WinDbg 安装、配置符号、分析命令完整指南
  • references/bugcheck_reference.md — 常见 Bugcheck 代码速查表

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-05-28 16:46 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,358 📥 318,247
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 668 📥 324,103
ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 712 📥 243,776