首页/系统/Windows 运维速查/1000/1001 应用崩溃与 WER 记录

1000/1001 应用崩溃与 WER 记录

应用崩溃两件套:1000 是应用错误(含故障模块),1001 是 Windows 错误报告;定位崩溃进程与模块的最快入口。

Windows 运维速查系统更新于 2026-10-13

事件是什么

1000 与 1001 是应用崩溃的两件套:1000 记录应用程序错误,包含进程名、故障模块、异常码与偏移;1001 是 Windows 错误报告生成的记录,带报告 ID,可据此到转储目录找到对应的 dump 文件。两者配合,是定位崩溃根因最快的入口。

怎么用故障模块

1000 事件里的故障模块往往是一个 dll,但它不一定是元凶:调用它的宿主进程、模块加载顺序与版本不匹配同样可疑。合理做法是先确认该模块的版本与来源(是否被替换、是否与系统不兼容),再结合转储用调试器查看调用栈。

基本信息

适用平台Windows 7/10/11 与各 Server,应用程序日志默认记录
1000 内容应用程序错误:进程、故障模块、异常码、模块版本与偏移
1001 内容WER 报告,含报告 ID,可定位对应的崩溃转储
转储位置%LOCALAPPDATA%\CrashDumps 或 ProgramData\Microsoft\Windows\WER

典型使用场景

  • 应用频繁崩溃时快速定位崩溃进程与故障模块
  • 统计某段时间内的崩溃次数,评估影响面
  • 拿到报告 ID 去找对应的转储文件做深入分析
  • 判断崩溃是否由系统更新引入的某个组件触发
  • 为厂商提交问题单提供完整的崩溃证据

常用示例

常用示例
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000,1001} -MaxEvents 20 | Select-Object TimeCreated, Id, @{n='App';e={$_.Properties[0].Value}}, @{n='Module';e={$_.Properties[3].Value}}, @{n='Code';e={$_.Properties[6].Value}} | Format-Table -AutoSize
:: 按进程统计一周内的崩溃次数
Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-7)} | Group-Object { $_.Properties[0].Value } | Sort-Object Count -Descending
:: 查找转储文件
Get-ChildItem "$env:LOCALAPPDATA\CrashDumps" -ErrorAction SilentlyContinue

字段读法

字段含义判读
事件 1000应用程序错误含进程名与异常码
故障模块抛出异常的模块不一定是元凶,需查调用方
异常码例外类型编号区分访问冲突、栈溢出等类型
模块版本出问题模块的版本与已知问题版本比对
事件 1001WER 报告报告 ID 可用于定位 dump
转储目录崩溃转储存放位置需确认 WER 已配置生成转储
拿到故障模块后先查它的版本与来源:升级、回滚或换用兼容版本通常是最先尝试的处置。
崩溃转储默认可能未生成,需要先确认 WER 的配置,否则 1001 里只有报告 ID 而找不到文件。

易错点

  • 故障模块是 dll 时不要直接归咎于它,调用它的宿主进程同样可疑
  • 崩溃转储默认可能未开启,先确认 WER 配置再去找文件
  • 只统计崩溃次数不看异常码,无法区分不同类型的崩溃
  • 进程与调试器位数混用,转储打不开还看不出明显提示

数据来源与参考

  • Microsoft Learn:1000 事件
  • Microsoft Learn:Windows 错误报告

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌