很多服务器系统未开启蓝屏dump文件收集,导致服务器死机或蓝屏后找不出原因。我们可以通过维护大师的三层任务功能批量开启服务器的蓝屏dump文件收集功能。

一、编辑一份开启服务器蓝屏dump收集的批处理。

在任意位置新建一个文件夹,比如 SetDump,在文件夹内建立一个批处理,如“SetDump.bat”,编辑此批处理粘贴以下内容并保存。

@Echo Off
Title 维护大师 – 开启蓝屏Dump收集 & Color 1A
cd %systemroot%\system32
call :IsAdmin

Reg.exe add “HKLM\SYSTEM\ControlSet001\Control\CrashControl” /v “AutoReboot” /t REG_DWORD /d “1” /f
Reg.exe add “HKLM\SYSTEM\ControlSet001\Control\CrashControl” /v “CrashDumpEnabled” /t REG_DWORD /d “3” /f
Reg.exe add “HKLM\SYSTEM\ControlSet001\Control\CrashControl” /v “Overwrite” /t REG_DWORD /d “1” /f
Reg.exe add “HKLM\SYSTEM\ControlSet001\Control\CrashControl” /v “LogEvent” /t REG_DWORD /d “1” /f
Reg.exe add “HKLM\SYSTEM\CurrentControlSet\Control\CrashControl” /v “AutoReboot” /t REG_DWORD /d “1” /f
Reg.exe add “HKLM\SYSTEM\CurrentControlSet\Control\CrashControl” /v “CrashDumpEnabled” /t REG_DWORD /d “3” /f
Reg.exe add “HKLM\SYSTEM\CurrentControlSet\Control\CrashControl” /v “Overwrite” /t REG_DWORD /d “1” /f
Reg.exe add “HKLM\SYSTEM\CurrentControlSet\Control\CrashControl” /v “LogEvent” /t REG_DWORD /d “1” /f
Exit

:IsAdmin
Reg.exe query “HKU\S-1-5-19\Environment”
If Not %ERRORLEVEL% EQU 0 (
Cls & Echo You must have administrator rights to continue …
Pause & Exit
)
Cls
goto:eof

批处理详解:

  • “AutoReboot”代表蓝屏收集完dump文件后是否自动重启,0 不启用,1 开启。一般保持为开。
  • “CrashDumpEnabled” 代表是否启用收集蓝屏dump文件,0 不启用,1 完全内存转储,2 核心内存转储,3 小内存转储,一般设置为“小内存转储”。
  • “Overwrite” 代表有新的dump时是否覆盖旧的dump文件,此选项对“小内存转储”不生效。一般设置为覆盖。
  • “LogEvent”代表是否把蓝屏事件写到系统日志里,当然是要写入的。

二、打开维护大师远程管理端,在“三层任务”模块下新建一个服务器任务如下图。

0015997ac97905f72eeada4b58c6eb7

如上图所示,新建服务器任务后点击“选择目录”并选择步骤1中解压出来的文件夹,“执行规则”选择“推送完仅执行一次”,点击“保存”按钮后,按照流程推送给所有服务器即可。

执行后,服务器的“启动和故障恢复”设置将变为下图所示:

001599a352c50ae43f5fd637ae4ef77

当发生蓝屏后,我们只需使用windbg分析“%SystemRoot%\Minidump”下的dump文件即可找到原因。

关于如何使用windbg,请点击此处蓝屏dump分析教程