想必 Windows 10 用户或多或少都遇到过更新安装失败或系统升级问题,遇到此类问题,大多数用户面对冷冰冰的错误代码都会无所适从。其实,微软针对 IT Pro 有提供一个专业的 Windows 10 升级问题诊断工具——SetupDiag,通过该工具我们可以快速对 Windows 10 更新和升级过程中遇到的问题进行Troubleshooting。
SetupDiag 是微软提供的免费诊断工具,旨在帮助 IT Pro 查找和解析 Windows 10 安装日志,以确定升级或更新未能在 Windows 10 PC 上正常安装的根本原因。SetupDiag 可以在更新安装失败的计算机上直接执行诊断,也可以将日志从一台 PC 导出到另一台计算机,并以脱机模式运行 SetupDiag 进行分析。
使用 SetupDiag 工具有 2 个必要的前提条件:
- 必需是使用 Windows 10 操作系统的设备
- 必须安装 .NET Framework 4.6
如果您不确定当前系统使用了哪个 .NET Framework 版本,可以在 CMD 中执行 reg query “HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4” /s 命令进行查看。
Windows 10 version 1803 马上就要发布,如果您遇到升级问题(乌鸦嘴 ),马上就可以使用它来进行诊断咯!
如何使用SetupDiag诊断工具
在 Microsoft 官网下载 SetupDiag 工具之后就可以直接运行(联机模式),如果不带任何参数,它会自动尝试查找并检测 Windows 10 在升级过程中在设备默认文件夹中生成的升级日志文件。
命令执行完扫描后,会在 SetupDiag.exe 工具的相同目录下生成一个名为 SetupDiagResults.log 的结果文件,其中会包含在升级日志文件中检测到的升级问题。与此同时,还会在同一目录下创建一个所有日志文件的 Logs.zip 打包存档。
Windows 安装日志文件和事件日志中包含了有关 Windows 在安装期间创建日志的信息。 如果要脱机模式使用 SetupDiag,就需要将以下日志文件夹复制到脱机位置:
- -\$Windows.~bt\sources\panther
- \$Windows.~bt\Sources\Rollback
- \Windows\Panther
- \Windows\Panther\NewOS
如果您复制了父文件夹和所有子文件夹,SetupDiag 将自动搜索所有子目录中的日志文件。
Bug check分析
当 Windows 10 遇到危及操作系统安全(Kernel mode)的情况时,系统将会主动暂停。这种情况被专称为「错误检查(bug check)」,通常也叫系统崩溃、内核错误、Stop 错误或 BSOD,其实就是蓝屏。。。(一般硬件驱动或相关软件会导致此错误)
如果你的系统启用了崩溃转储,在蓝屏时就会主动创建崩溃转储文件。如果在 Windows 10 升级过程中发生 bug check,Windows 安装程序会自动提取一个小型转储 setupmem.dmp 文件,而 SetupDiag 工具也可以调试这些设置相关的 dump 文件。
要调试设置相关的 bug check 必须:
- 指定 /Mode:Offline 和 /LogsPath 参数,无法在联机模式下调试内存转储。
- 采集到 setupmem.dmp 内存转储文件。(位于 %SystemDrive%$Windows.~bt\Sources\Rollback 或 %WinDir%\Panther\NewOS\Rollback 文件夹,取决于 bug check 发生的时机)~
- 执行 SetupDiag 的计算机中安装了 Windows Debugging Tools
在以下示例中,已经将 setupmem.dmp 文件复制到 D:\Dump 目录,并在运行 SetupDiag 之前安装了 Windows 调试工具:
SetupDiag.exe /Output:C:\SetupDiag\Dumpdebug.log /Mode:Offline /LogsPath:D:\Dump
SetupDiag工作原理
其实说白了 SetupDiag 就是一个规则匹配工具,它可以自动通过微软定义的 26 个唯一标识符来查找 Windows 10 升级日志中的匹配项。对规则的依赖意味着 SetupDiag 只能识别已经在其规则集中定义好的问题,微软已经在 Microsoft Docs 网站上列出了共 26 个唯一标识符。