在 Windows 中配置系统故障和恢复选项

             适用于:Windows 10

本文介绍如何配置当系统错误 (也称为 bug 检查、系统崩溃、严重系统错误或停止错误) 发生时 Windows 采取的操作。 可以配置以下操作:

  • 将事件写入系统日志。
  • 如果已) 设置管理警报,则警报管理员 (。
  • 将系统内存放入高级用户可用于调试的文件中。
  • 自动重新启动计算机。

注意

必须以管理员或管理员组成员身份登录才能完成此过程。 如果计算机已连接到网络,网络策略设置可能会阻止你完成此过程。

配置系统故障和恢复选项

重要

请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原

启动和恢复 ”对话框中提供了这些选项。 还可以使用以下方法:

  • 修改以下注册表子项下的值:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

  • 若要修改本地计算机上的 选项,请使用命令行实用工具 (Wmic.exe) 访问 Windows Management Instrumentation (WMI) 。

按照以下步骤查看 “启动”和“恢复”中的选项。 (还会为每个选项列出注册表值和 Wmic 命令。)

  1. 在“控制面板”中,选择“系统和安全>系统”。
  2. 选择“高级系统设置”,选择“高级”选项卡,然后在“启动和恢复”区域中选择“设置”。

在“系统故障”下

选择检查框,了解发生系统错误时希望 Windows 执行的操作。

将事件写入系统日志

此选项指定事件信息记录在系统日志中。 默认情况下,此选项处于启用状态。

若要关闭此选项,请运行以下命令或修改注册表值:

  • wmic recoveros set WriteToSystemLog = False
    
  • LogEvent DWORD 值设置为 0

发送管理警报

选项指定如果配置了管理警报,则会通知管理员系统错误。 默认情况下,此选项处于启用状态。

若要关闭此选项,请运行以下命令或修改注册表值:

  • wmic recoveros set SendAdminAlert = False
    
  • SendAlert DWORD 值设置为 0

自动重启

选项指定 Windows 自动重新启动计算机。 默认情况下,此选项处于启用状态。

若要关闭此选项,请运行以下命令或修改注册表值:

  • wmic recoveros set AutoReboot = False
    
  • “自动重启 DWORD”值设置为 0

在“写入调试信息”下

选择希望 Windows 在内存转储文件中记录的下列信息类型之一(如果计算机意外停止):

(无)

选项不会在内存转储文件中记录任何信息。

若要指定不希望 Windows 在内存转储文件中记录信息,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugInfoType = 0
    
  • CrashDumpEnabled DWORD 值设置为 0

小型内存转储

选项记录最少的信息量,以帮助识别问题。 此选项要求计算机启动卷上至少有 2 MB (MB) 的分页文件,并指定每次系统意外停止时 Windows 将创建新文件。 这些文件的历史记录存储在小转储目录 (%SystemRoot%\Minidump) 下列出的文件夹中。 在 Windows XP 和 Windows Server 2003 中,小型内存转储文件与 Windows 错误报告 功能一起使用。

若要指定要使用小型内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugInfoType = 3
    
  • CrashDumpEnabled DWORD 值设置为 3

若要指定要使用文件夹作为小型转储目录,请运行以下命令或修改注册表值:

  • wmic recoveros set MiniDumpDirectory = <folderpath>
    
  • MinidumpDir 可展开字符串值设置为 <folderpath>。

内核内存转储

选项仅记录内核内存。 此选项存储的信息比小型内存转储文件要多,但完成时间比完整的内存转储文件少。 默认情况下,该文件存储在 %SystemRoot%\Memory.dmp 中,如果选中“覆盖任何现有文件检查”框,则会覆盖任何以前的内核或完整的内存转储文件。 如果设置此选项,则必须在启动卷上具有足够大的分页文件。 所需的大小取决于计算机中的 RAM 量。 但是,32 位系统上内核内存转储的最大可用空间量为 2 GB 加 16 MB。 在 64 位系统上,内核内存转储的最大可用空间量是 RAM 的大小加上 128 MB。 下表提供了分页文件大小的指南:

RAM 大小 分页文件不应小于
256 MB–1,373 MB RAM 大小的 1.5 倍
1,374 MB 或更大 32 位系统:2 GB 加 16 MB
64 位系统:RAM 的大小加上 128 MB

若要指定要使用内核内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugInfoType = 2
    
  • CrashDumpEnabled DWORD 值设置为 2

若要指定要使用文件作为内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugFilePath = <filepath>
    
  • DumpFile Expandable String Value 设置为 <filepath>。

若要指定不想覆盖任何以前的内核或完整的内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set OverwriteExistingDebugFile = 0
    
  • “覆盖 DWORD”值设置为 0

完成内存转储

选项记录计算机意外停止时系统内存的内容。 此选项在具有 2 GB 或更多 RAM 的计算机上不可用。 如果选择此选项,则必须在启动卷上具有足以容纳所有物理 RAM 和 1 MB 的分页文件。 默认情况下,该文件按 %SystemRoot%\Memory.dmp 中指定的方式存储。

完整的内存转储文件需要额外的兆字节,因为 Windows 除了转储内存内容外,还会写入标头。 标头包含故障转储签名,并指定某些内核变量的值。 标头信息不需要完整的兆字节空间,但 Windows 以 MB 为增量调整分页文件的大小。

若要指定要使用完整的内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugInfoType = 1
    
  • CrashDumpEnabled DWORD 值设置为 1

若要指定要使用文件作为内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugFilePath = <filepath>
    
  • 将 DumpFile Expandable String Value 设置为 <filepath>。

若要指定不想覆盖任何以前的内核或完整的内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set OverwriteExistingDebugFile = 0
    
  • “覆盖 DWORD”值设置为 0

自动内存转储

这是默认选项。 自动内存转储包含与内核内存转储相同的信息。 两者之间的区别在于 Windows 设置系统分页文件的大小。 如果将系统分页文件大小设置为 “系统托管大小”,并且内核模式故障转储设置为 “自动内存转储”,则 Windows 可以将分页文件大小设置为小于 RAM 的大小。 在这种情况下,Windows 设置的分页文件的大小足够大,以确保大部分时间都可以捕获内核内存转储。

如果计算机崩溃,并且分页文件的大小不足以捕获内核内存转储,则 Windows 会将分页文件的大小至少增加到 RAM 的大小。 有关详细信息,请参阅 自动内存转储

若要指定要使用自动内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugInfoType = 7
    
  • CrashDumpEnabled DWORD 值设置为 7

若要指定要使用文件作为内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugFilePath = <filepath>
    
  • DumpFile Expandable String Value 设置为 <filepath>。

若要指定不想覆盖任何以前的内核或完整的内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set OverwriteExistingDebugFile = 0
    
  • “覆盖 DWORD”值设置为 0

活动内存转储

活动内存转储类似于完整内存转储,但它筛选掉了与排查主机上的问题无关的页面。 由于这种筛选,它通常明显小于完全内存转储。

此转储文件包括分配给用户模式应用程序的任何内存。 它还包括分配给 Windows 内核和硬件抽象层的内存,以及分配给内核模式驱动程序和其他内核模式程序的内存。 转储包括映射到内核或用户空间(对调试有用的)的活动页,以及所选页面文件支持的转换、待机和修改页面,例如使用 VirtualAlloc 或页面文件支持部分分配的内存。 活动转储不包括免费列表和归零列表上的页、文件缓存、来宾 VM 页,以及调试期间不太可能有用的各种其他类型的内存。 有关详细信息,请参阅 活动内存转储

若要指定要使用活动内存转储文件,请修改注册表值:

  • CrashDumpEnabled DWORD 值设置为 1
  • FilterPages DWORD 值设置为 1

若要指定要使用文件作为内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set DebugFilePath = <filepath>
    
  • 将 DumpFile Expandable String Value 设置为 <filepath>。

若要指定不想覆盖任何以前的内核或完整的内存转储文件,请运行以下命令或修改注册表值:

  • wmic recoveros set OverwriteExistingDebugFile = 0
    
  • “覆盖 DWORD”值设置为 0

注意

如果就停止错误联系Microsoft 支持部门,系统可能会要求你提供“写入调试信息”选项生成的内存转储文件。

若要查看本地计算机的系统故障和恢复设置,请在命令提示符处键入 wmic recoveros ,然后按 Enter。 若要查看局域网上远程计算机的系统故障和恢复设置,请在命令提示符处键入 wmic /node:<computer_name> recoveros ,然后按 Enter。

注意

若要成功使用这些 Wmic.exe 命令行示例,必须使用在计算机上具有管理权限的用户帐户登录。 如果未使用在计算机上具有管理权限的用户帐户登录,请使用 /user:user_name/password:password 开关。

提示

  • 若要利用转储文件功能,分页文件必须位于启动卷上。 如果已将分页文件移到另一个卷,则必须先将其移回启动卷,然后才能使用此功能。

  • 如果设置了“内核内存转储”或“完成内存转储”选项,并且选中“覆盖任何现有文件检查”框,则 Windows 始终写入相同的文件名。 若要保存单个转储文件,请单击以清除“覆盖任何现有文件检查”框,然后在每次停止错误后更改文件名。

  • 如果单击以清除“将事件写入系统日志”和“发送管理警报检查”框,则可以保存一些内存。 保存的内存取决于计算机,但这些功能通常需要大约 60-70 KB。

References

各种 Kernel-Mode 转储文件