Windows 10 无法升级?使用「SetupDiag」工具诊断

想必 Windows 10 用户或多或少都遇到过更新安装失败或系统升级问题,遇到此类问题,大多数用户面对冷冰冰的错误代码都会无所适从。其实,微软针对 IT Pro 有提供一个专业的 Windows 10 升级问题诊断工具——SetupDiag,通过该工具我们可以快速对 Windows 10 更新和升级过程中遇到的问题进行Troubleshooting。

SetupDiag 是微软提供的免费诊断工具,旨在帮助 IT Pro 查找和解析 Windows 10 安装日志,以确定升级或更新未能在 Windows 10 PC 上正常安装的根本原因。SetupDiag 可以在更新安装失败的计算机上直接执行诊断,也可以将日志从一台 PC 导出到另一台计算机,并以脱机模式运行 SetupDiag 进行分析。

使用 SetupDiag 工具有 2 个必要的前提条件:

  1. 必需是使用 Windows 10 操作系统的设备
  2. 必须安装 .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,就需要将以下日志文件夹复制到脱机位置:

  1. -\$Windows.~bt\sources\panther
  2. \$Windows.~bt\Sources\Rollback
  3. \Windows\Panther
  4. \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 必须:

  1. 指定 /Mode:Offline 和 /LogsPath 参数,无法在联机模式下调试内存转储。
  2. 采集到 setupmem.dmp 内存转储文件。(位于 %SystemDrive%$Windows.~bt\Sources\Rollback 或 %WinDir%\Panther\NewOS\Rollback 文件夹,取决于 bug check 发生的时机)~
  3. 执行 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 个唯一标识符。

# 更多Windows 10技巧,请关注「Windows 10专题