SetupDiag
发布时间:2026-08-27 | 浏览:3
访问此页面需要授权。 可以尝试 登录 或 更改目录 。
访问此页面需要授权。 可以尝试 更改目录 。
适用于: ✅ Windows 11 , ✅ Windows 10
本文是一篇 300 级文章, (中等高级) 。 有关本部分中的文章的完整列表,请参阅 解决 Windows 升级错误 。
手动运行 SetupDiag 时,Microsoft建议运行最新版本的 SetupDiag。 可通过以下链接获取最新版本:
下载最新版本的 SetupDiag
运行最新版本可确保最新功能并修复已知问题。
SetupDiag 是一种诊断工具,可用于获取有关 Windows 升级失败原因的详细信息。
SetupDiag 的工作原理是检查 Windows 安装程序日志文件。 它尝试分析这些日志文件,以确定无法更新计算机或将计算机升级到 Windows 的根本原因。 可以在无法更新的计算机上运行 SetupDiag。 还可以将日志从计算机导出到另一个位置,然后在脱机模式下运行 SetupDiag。
在所有当前受支持的 Windows 版本中,Windows 安装程序 都包含 SetupDiag。
在升级过程中,Windows 安装程序会将其所有源文件(包括 SetupDiag.exe )提取到 目录中 %SystemDrive%\$Windows.~bt\Sources 。 如果升级出现问题,SetupDiag 会自动运行以确定失败的原因。
由 Windows 安装程序运行时,使用以下 参数 :
/Output:%windir%\logs\SetupDiag\SetupDiagResults.xml
/RegPath:HKEY_LOCAL_MACHINE\SYSTEM\Setup\SetupDiag\Results
生成的 SetupDiag 分析可以在 %WinDir%\Logs\SetupDiag\SetupDiagResults.xml 和 的注册表中找到 HKLM\SYSTEM\Setup\SetupDiag\Results 。
当 Windows 安装程序自动运行 SetupDiag 时,注册表路径与手动运行 SetupDiag 时的默认注册表路径不同。 手动运行 SetupDiag 且 /RegPath 未指定 参数时,数据存储在 注册表中 HKLM\SYSTEM\Setup\MoSetup\Volatile\SetupDiag 。
当 SetupDiag 指示存在多个故障时,日志文件中的最后一个失败通常是致命错误,而不是第一个错误。
如果升级过程正常进行,则会将 Sources 目录(包括) SetupDiag.exe 移到下 %SystemDrive%\Windows.Old 进行清理。 Windows.old 如果稍后删除目录, SetupDiag.exe 也会删除 。
如果在 SetupDiag.exe 删除目录后 Windows.old 需要 ,可以从 Microsoft下载中心下载 它。
Windows 的目标版本必须是当前支持的 Windows 版本。 最初安装的 Windows 版本可以是不受支持的 Windows 版本,只要: Windows 的目标版本是当前支持的 Windows 版本。 支持从原始已安装版本的 Windows 升级到目标版本的 Windows。
Windows 的目标版本必须是当前支持的 Windows 版本。 最初安装的 Windows 版本可以是不受支持的 Windows 版本,只要:
Windows 的目标版本是当前支持的 Windows 版本。
支持从原始已安装版本的 Windows 升级到目标版本的 Windows。
必须安装 .NET Framework 4.7.2 或更高版本。 若要确定特定版本的 Windows 预安装了哪个版本的 .NET,请参阅 .NET Framework系统要求:支持的客户端操作系统 。 若要确定当前安装的 .NET 版本,请参阅 如何:确定安装了哪些.NET Framework版本 。 以下命令行查询可用于显示当前安装的 .NET 版本: reg.exe query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4" /s 只要至少安装了所需的 .NET 版本,就无需执行其他操作,包括是否安装了较新版本。
必须安装 .NET Framework 4.7.2 或更高版本。 若要确定特定版本的 Windows 预安装了哪个版本的 .NET,请参阅 .NET Framework系统要求:支持的客户端操作系统 。 若要确定当前安装的 .NET 版本,请参阅 如何:确定安装了哪些.NET Framework版本 。
以下命令行查询可用于显示当前安装的 .NET 版本:
只要至少安装了所需的 .NET 版本,就无需执行其他操作,包括是否安装了较新版本。
Setupdiag.exe 应从提升的命令提示符运行,以便其正常工作。
Setupdiag.exe 应从提升的命令提示符运行,以便其正常工作。
下载 最新版本的 SetupDiag。
下载 最新版本的 SetupDiag。
如果 Web 浏览器询问如何处理文件,请选择“ 保存 ”。 默认情况下,该文件保存到 “下载” 文件夹,该文件夹显示在左侧导航窗格的 “快速访问 ”下的文件资源管理器中。 如果需要,还可以使用 “另存为 ”将文件保存到其他位置。
如果 Web 浏览器询问如何处理文件,请选择“ 保存 ”。 默认情况下,该文件保存到 “下载” 文件夹,该文件夹显示在左侧导航窗格的 “快速访问 ”下的文件资源管理器中。 如果需要,还可以使用 “另存为 ”将文件保存到其他位置。
SetupDiag 完成下载后,打开提升的命令提示符并导航到下载并保存到的 setupdiag.exe 目录。
SetupDiag 完成下载后,打开提升的命令提示符并导航到下载并保存到的 setupdiag.exe 目录。
在提升的命令提示符下,使用所需参数在联机模式下运行 setupdiag.exe ,如 参数 和 示例 部分中所述。
在提升的命令提示符下,使用所需参数在联机模式下运行 setupdiag.exe ,如 参数 和 示例 部分中所述。
等待 SetupDiag 完成。
等待 SetupDiag 完成。
SetupDiag 完成后,会在运行 SetupDiag 的同一文件夹中创建两个文件: 配置文件。 日志文件。
SetupDiag 完成后,会在运行 SetupDiag 的同一文件夹中创建两个文件:
使用记事本打开日志文件 SetupDiagResults.log 。
使用记事本打开日志文件 SetupDiagResults.log 。
查看显示的信息。 如果匹配规则,此信息可以说明计算机升级失败的原因,以及可能如何解决问题。 请参阅 文本日志示例 部分。
查看显示的信息。 如果匹配规则,此信息可以说明计算机升级失败的原因,以及可能如何解决问题。 请参阅 文本日志示例 部分。
有关如何在 Windows PE 中的脱机模式下运行该工具的说明,请参阅 参数 和 示例 部分。
恢复指示 SetupDiag.exe 查找和处理重置和恢复日志,并忽略安装/升级日志。
调试指示 SetupDiag.exe 调试内存转储(如果安装了必要的调试二进制文件)。
/Mode 参数在 SetupDiag 中已弃用。
在以前的版本中, /Mode 参数与脱机模式下的 /LogsPath 参数一起使用,并将分析在不同计算机上捕获的一组日志文件。 在当前版本的 SetupDiag 中,当指定 /LogsPath 时,SetupDiag 会自动在脱机模式下运行,因此不需要 /Mode 参数。
SetupDiag.exe 应从提升的命令提示符运行,以便其正常工作。
在以下示例中,不带参数运行 SetupDiag,并显示帮助信息。 SetupDiag.exe
在以下示例中,不带参数运行 SetupDiag,并显示帮助信息。
在以下示例中,SetupDiag 在联机模式下运行, (此模式是默认) 。 它知道在当前 (故障) 系统上查找日志的位置,因此无需提前收集日志。 指定了结果的自定义位置。 SetupDiag.exe /Output:C:\SetupDiag\Results.log
在以下示例中,SetupDiag 在联机模式下运行, (此模式是默认) 。 它知道在当前 (故障) 系统上查找日志的位置,因此无需提前收集日志。 指定了结果的自定义位置。
以下示例使用 /Output 参数将结果保存到包含空格的路径名称: SetupDiag /Output:"C:\Tools\SetupDiag\SetupDiag Results\Results.log"
以下示例使用 /Output 参数将结果保存到包含空格的路径名称:
以下示例指定 SetupDiag 在脱机模式下运行,并处理 在 D:\Temp\Logs\LogSet1 中找到的日志文件。 SetupDiag.exe /Output:C:\SetupDiag\Results.log /LogsPath:D:\Temp\Logs\LogSet1
以下示例指定 SetupDiag 在脱机模式下运行,并处理 在 D:\Temp\Logs\LogSet1 中找到的日志文件。
下面是重置/恢复脱机模式的示例。 指示 SetupDiag 在指定的 LogsPath 位置中查找重置/恢复日志。 然后,它将结果输出到 /Output 参数指定的目录。 SetupDiag.exe /Output:C:\SetupDiag\RecoveryResults.log /LogsPath:D:\Temp\Cabs\PBR_Log /Scenario:Recovery
下面是重置/恢复脱机模式的示例。 指示 SetupDiag 在指定的 LogsPath 位置中查找重置/恢复日志。 然后,它将结果输出到 /Output 参数指定的目录。
以下示例是重置/恢复联机模式的示例。 指示 SetupDiag 在当前系统上查找重置/恢复日志,并将其结果输出为 XML 格式。 SetupDiag.exe /Scenario:Recovery /Format:xml
以下示例是重置/恢复联机模式的示例。 指示 SetupDiag 在当前系统上查找重置/恢复日志,并将其结果输出为 XML 格式。
以下示例是脱机模式的示例。 指示 SetupDiag 分析 LogsPath 目录中的安装程序/升级日志文件并将结果输出到 C:\SetupDiag\Results.txt 。 SetupDiag.exe /Output:C:\SetupDiag\Results.txt /LogsPath:D:\Temp\Logs\Logs1 /RegPath:HKEY_CURRENT_USER\SYSTEM\SetupDiag
以下示例是脱机模式的示例。 指示 SetupDiag 分析 LogsPath 目录中的安装程序/升级日志文件并将结果输出到 C:\SetupDiag\Results.txt 。
以下示例是联机模式的示例。 指示 SetupDiag 在当前系统上查找安装/升级日志,并将其结果以 XML 格式输出到 C:\SetupDiag\Results.xml 。 SetupDiag.exe /Output:C:\SetupDiag\Results.xml /Format:xml
以下示例是联机模式的示例。 指示 SetupDiag 在当前系统上查找安装/升级日志,并将其结果以 XML 格式输出到 C:\SetupDiag\Results.xml 。
Windows 安装程序日志Files和事件日志 包含有关在 Windows 安装期间创建日志的位置的信息。 对于脱机处理,应针对整个文件夹的内容运行 SetupDiag。 例如,根据升级失败时间,将以下文件夹之一复制到脱机位置:
\$Windows.~bt\sources\panther
\$Windows.~bt\Sources\Rollback
\Windows\Panther
\Windows\Panther\NewOS
如果复制父文件夹和所有子文件夹,SetupDiag 会自动搜索所有子目录中的日志文件。
当Microsoft Windows 遇到危及安全系统操作的条件时,系统将停止。 这种情况称为 bug 检查。 这种情况通常也称为系统崩溃、内核错误、停止错误或 BSOD。 通常,硬件设备、硬件驱动程序或相关软件会导致此错误。
如果在系统上 启用了 故障转储,则会创建故障转储文件。 如果在升级过程中出现 bug 检查,Windows 安装程序会提取) 文件 ( setupmem.dmp 小型转储。 SetupDiag 还可以调试这些与设置相关的微型umps。
调试与安装相关的 bug 检查:
指定 /LogsPath 参数。 无法在联机模式下调试内存转储。
指定 /LogsPath 参数。 无法在联机模式下调试内存转储。
从失败的系统中收集安装程序内存转储文件 ('setupmem.dmp) 。 Setupmem.dmp 在 %SystemDrive%$Windows.~bt\Sources\Rollback 或 %WinDir%\Panther\NewOS\Rollback 中创建,具体取决于 bug 检查发生的时间。
从失败的系统中收集安装程序内存转储文件 ('setupmem.dmp) 。
Setupmem.dmp 在 %SystemDrive%$Windows.~bt\Sources\Rollback 或 %WinDir%\Panther\NewOS\Rollback 中创建,具体取决于 bug 检查发生的时间。
在运行 SetupDiag 的计算机上安装 Windows 调试工具 。
在运行 SetupDiag 的计算机上安装 Windows 调试工具 。
在以下示例中,文件 setupmem.dmp 将复制到 目录, D:\Dump 并在运行 SetupDiag 之前安装 Windows 调试工具:
如果涉及的日志文件很大,某些规则可能需要很长时间才能处理。
以下命令是一个示例,其中 SetupDiag 在脱机模式下运行。
当 SetupDiag 搜索日志文件时,它使用一组规则来匹配已知问题。 这些规则包含在 xml 文件中。 随着 SetupDiag 的新版本可用,xml 文件可能会使用新的和更新的规则进行更新。
每个规则名称及其关联的唯一规则标识符都列出了已知升级阻止问题的说明。 在规则说明中,术语 “下层 ”是指升级过程的第一个阶段,该阶段在原始 OS 下运行。
解决 Windows 升级错误:IT 专业人员的技术信息 。
想要尝试使用 Ask Learn 阐明或指导你完成本主题?
Last updated on 2026-03-23