Windows 更新 for Business 报表:使用配置脚本对设备配置进行故障排除

适用于: Windows Server,所有受支持的版本

进行故障排除时,可以使用适用于企业的Windows 更新报告配置脚本测试终结点连接,确保正在运行正确的服务,并检查常见问题。

可以从Microsoft下载中心下载脚本

有关脚本的详细信息(包括可用参数),请参阅通过适用于企业的报表配置脚本Windows 更新配置设备。

注意

如果在设备配置中找不到任何问题,并且确定正确配置了适用于企业的Windows 更新报表,则问题可能与数据传输相关。 有关详细信息,请参阅适用于企业的报表Windows 更新:如何排查诊断数据传输问题。

配置脚本

设备必须安装 Windows 10 或更高版本以及最新版本的 Windows PowerShell。 若要运行脚本,必须在设备上使用提升的 PowerShell 窗口(脚本本身在系统上下文中运行)。

重要

  • 脚本包包括 PSExec.exe。 如果使用 Microsoft Intune 等移动设备管理器,并且已实现超出标准 ASR 规则的攻击面减少(ASR)规则,则规则可能会阻止脚本。 有关详细信息,请参阅 来自 PSExec 和 WMI 命令的阻止进程创建。
  • 完成设备故障排除后,请删除 PSExec.exe

运行脚本

若要使用脚本对客户端设备进行故障排除,请执行以下操作:

  1. 以管理员身份登录到设备。

  2. 将脚本包下载到要进行故障排除的设备,并展开脚本包。

  3. 在设备上为日志数据创建文件夹。 脚本使用的默认名称和路径是 *默认值为 .\UCLogs

  4. 编辑 RunConfig.bat 以设置以下必需参数:

    • runMode=Pilot
    • logPath=<path of the folder that you created for log data>

    注意

    • 试点模式是一种详细模式。 该脚本具有另一种模式(部署)以静默方式运行。
    • 请勿修改 Commercial ID 参数。 它们用于适用于企业的Windows 更新的早期版本(更新符合性)。
  5. 如果要设置其他参数,则以下 RunConfig.bat 参数是可选的。

    参数 允许的值和说明 示例
    logMode 0:仅登录到控制台。
    1: (默认值) 记录到文件和控制台。
    2:仅记录到文件。
    logMode=2
    DeviceNameOptIn true:(默认值)设备名称发送到Microsoft。
    false:设备名称不会发送到Microsoft。
    DeviceNameOptIn=true
    ClientProxy 直接:(默认值)设备直接连接到终结点。
    系统:设备使用系统代理进行连接,无需身份验证。
    用户:设备使用用户帐户的 Internet 配置进行连接。 连接可能不需要用户身份验证。

    有关详细信息,请参阅 Windows 更新 客户端如何确定用于连接到 Windows 更新 网站的代理服务器
    ClientProxy=Direct
  6. 将更改保存到 RunConfig.bat,然后关闭该文件。

  7. 打开提升的 PowerShell 窗口,导航到包含脚本文件的文件夹,然后运行 RunConfig.bat

查看脚本输出

该脚本在RunConfig.bat的参数logPath中标识的文件夹中创建一个工作文件夹。 默认文件夹名称 UA_yy_MM_dd_HH_mm_ss_GUID,其中 yy_MM_dd_HH_mm_ss 表示运行脚本的日期和时间。 该脚本将所有输出文件和其他诊断文件保存在此工作文件夹中。

分析脚本日志文件和错误代码

脚本日志文件 UA_yy_MM_dd_HH_mm_ss_GUID.txt与工作文件夹同名。 应首先查看此文件。 可以使用下表来解释文件中列出的任何错误代码。

错误 说明
1 错误
12 CheckVortexConnectivity 失败,请检查日志输出以了解详细信息。
12 运行 CheckVortexConnectivity 时意外失败。
16 重新启动在设备上挂起。 重启设备,然后重新运行脚本。
17 CheckRebootRequired 中的意外异常。
27 不是系统帐户。
30 无法禁用企业身份验证代理。 此注册表值必须为 0,才能在经过身份验证的代理环境中运行 UTC。
34 尝试检查代理设置时出现意外异常。
35 检查用户代理时出现意外异常。
37 收集日志时出现意外异常。
40 检查和设置遥测时出现意外异常。
41 无法模拟登录用户。
42 尝试模拟登录用户时出现意外异常。
43 尝试模拟登录用户时出现意外异常。
44 运行 CheckDiagTrack 服务时出错。
45 找不到DiagTrack.dll。
50 DiagTrack 服务未运行。
51 尝试运行Census.exe时出现意外异常。
52 找不到Census.exe。
54 Microsoft帐户登录助手(MSA)服务已禁用。
55 未能为 SetDeviceNameOptIn 创建新的注册表路径。
56 无法在注册表路径上为 SetDeviceNameOptIn 创建属性。
57 无法更新 SetDeviceNameOptIn 的值。
58 SetDeviceNameOptIn 中的意外异常。
59 尝试清理 OneSettings 时,无法删除注册表路径中的 LastPersistedEventTimeOrFirstBoot 属性。
60 尝试清理 OneSettings 时未能删除注册表项。
61 尝试清理 OneSettings 时出现意外异常。
62 AllowTelemetry 注册表项不是REG_DWORD的正确类型。
63 AllowTelemetry 未设置为适当的值,无法由脚本设置。
64 AllowTelemetry 不是正确的REG_DWORD类型。
66 未能验证 UTC 连接和最近上传。
67 验证 UTC CSP 时出现意外失败。
99 设备不是 Windows 10 或 Windows 11。
100 设备必须Microsoft已加入 Entra 或已加入 Microsoft Entra 混合联接,才能对 Business 报表使用 Windows 更新。
101 检查Microsoft Entra 联接失败,出现意外异常。
102 不应启用 DisableOneSettingsDownloads 策略。 请禁用此策略。

分析其他输出和诊断数据

这些文件记录脚本从注册表导出的信息。

RegAppCompatFlags.txt

此文件记录评估程序(有时称为设备评估程序或Microsoft兼容性评估程序)信息。 评估器是与兼容性更新相对应的 Windows 组件。 它评估设备上的应用和驱动程序,以便与最新版本的 Windows 兼容。 评估程序取决于以下文件:

  • %windir%\System32\appraiser.dll。 文件版本必须为 10.0.17763 或更高版本。
  • %windir%\System32\CompatTelRunner.exe。 如果文件不存在,请确保设备上安装了所有兼容性更新。

RegDataCollection.txt

此文件记录 DataCollection 设置。 此数据表示设备的当前遥测配置,根据应用的策略。

可以使用此数据来验证是否应用了适当的值,以便将诊断数据传输到Microsoft。 此数据类似于以下摘录:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection]
"AllowDeviceNameInTelemetry"=dword:00000001
"AllowUpdateComplianceProcessing"=dword:00000010
"AllowCommercialDataPipeline"=dword:00000001

RegPoliciesDataCollection.txt

此文件记录用于控制诊断数据的设备级和用户级设置。 设备级配置数据类似于以下摘录:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection]
"AllowTelemetry"=dword:00000003
"MaxTelemetryAllowed"=dword:00000003

AllowTelemetry 条目控制要传输的诊断数据的类型(如果有)。 该条目具有以下允许的值:

  • 0 – 安全性(仅企业版、教育版和服务器版 Windows 支持此值)。
  • 1 – 基本(必需)遥测
  • 2 – 增强型遥测
  • 3 – 完整遥测

用户级配置数据类似于以下摘录:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection\Users]

RegSQM.txt

此信息主要与 Windows 7 设备有关。 如果使用的是更高版本的 Windows 版本,则可以将此信息用作设备的回退标识符。

RegDiagTrack.txt

此文件记录连接用户体验和遥测 (DiagTrack) (UTC) 服务的所有注册表设置。 存储这些设置的所有条目都位于子项下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack\ 。 以下摘录显示了此类报告:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack]
"TimeStampInterval"=dword:00000001
"Capabilities"=hex:c6,f6,43,15,00,00,00,00
"mspflags"=hex(b):11,00,00,00,00,00,00,00
"DiagTrackAuthorization"=dword:00000f9f
"LaunchCount"=hex(b):03,00,00,00,00,00,00,00
"DiagTrackStatus"=dword:00000003
"LastFreeNetworkLossTime"=hex(b):00,00,00,00,00,00,00,00
"LastConnectivityHeartBeatTime"=hex(b):00,00,00,00,00,00,00,00
"LastConnectivityState"=dword:00000002
"ConnectivityNoNetworkTime"=dword:00000001
"ConnectivityRestrictedNetworkTime"=dword:00000000
"LastPersistedEventTime"=hex(b):40,e5,64,27,cb,8a,d9,01
"LatencyDataLastUploadTime"=hex(b):00,00,00,00,00,00,00,00
"TriggerCount"=hex(b):00,04,00,00,00,00,00,00
"HttpRequestCount"=hex(b):07,00,00,00,00,00,00,00
"TriggerLatency"="0.088490"
"HttpRequestLatency"="0.077600"
"LastSuccessfulUploadTime"=hex(b):7a,96,6c,2b,cb,8a,d9,01
"LastSuccessfulRealtimeUploadTime"=hex(b):7a,96,6c,2b,cb,8a,d9,01
"LastSuccessfulNormalUploadTime"=hex(b):55,2a,aa,a7,ca,8a,d9,01
使用 DCode 工具将十六进制值转换为日期时间格式

如前面的摘录所示,其中许多条目使用大端十六进制格式。 若要将其转换为 UTC 日期和时间,请使用 DCode工具。 此工具以免费下载的形式提供。

DCode 工具使用的输入值的格式与文件使用的输入值略有不同。 必须反转段序列,然后删除所有非数字字符。 例如,请考虑摘录中的以下值:

hex(b):55,2a,aa,a7,ca,8a,d9,01

若要转换此值,请打开 DCode,选择“格式,然后选择“十六进制”(Big Endian)。“值”中,输入以下内容:

01d98acaa7aa2a55

然后选择“解码”。 结果列表包括值为 2023-05-20 03:24:58.5114197 Z 的 Windows FileTime(UTC)条目。

注意

默认情况下,所有日期和时间都是协调世界时(UTC)值。 若要在不同的时区中显示时间戳,请使用 DCode 中的时区 设置。