适用于: Windows Server,所有受支持的版本
进行故障排除时,可以使用适用于企业的Windows 更新报告配置脚本测试终结点连接,确保正在运行正确的服务,并检查常见问题。
可以从Microsoft下载中心下载脚本。
有关脚本的详细信息(包括可用参数),请参阅通过适用于企业的报表配置脚本Windows 更新配置设备。
注意
如果在设备配置中找不到任何问题,并且确定正确配置了适用于企业的Windows 更新报表,则问题可能与数据传输相关。 有关详细信息,请参阅适用于企业的报表Windows 更新:如何排查诊断数据传输问题。
配置脚本
设备必须安装 Windows 10 或更高版本以及最新版本的 Windows PowerShell。 若要运行脚本,必须在设备上使用提升的 PowerShell 窗口(脚本本身在系统上下文中运行)。
重要
- 脚本包包括 PSExec.exe。 如果使用 Microsoft Intune 等移动设备管理器,并且已实现超出标准 ASR 规则的攻击面减少(ASR)规则,则规则可能会阻止脚本。 有关详细信息,请参阅 来自 PSExec 和 WMI 命令的阻止进程创建。
- 完成设备故障排除后,请删除 PSExec.exe。
运行脚本
若要使用脚本对客户端设备进行故障排除,请执行以下操作:
以管理员身份登录到设备。
将脚本包下载到要进行故障排除的设备,并展开脚本包。
在设备上为日志数据创建文件夹。 脚本使用的默认名称和路径是 *默认值为 .\UCLogs。
编辑 RunConfig.bat 以设置以下必需参数:
runMode=Pilot
logPath=<path of the folder that you created for log data>
注意
- 试点模式是一种详细模式。 该脚本具有另一种模式(部署)以静默方式运行。
- 请勿修改
Commercial ID
参数。 它们用于适用于企业的Windows 更新的早期版本(更新符合性)。
如果要设置其他参数,则以下 RunConfig.bat 参数是可选的。
参数 允许的值和说明 示例 logMode 0:仅登录到控制台。
1: (默认值) 记录到文件和控制台。
2:仅记录到文件。logMode=2
DeviceNameOptIn true:(默认值)设备名称发送到Microsoft。
false:设备名称不会发送到Microsoft。DeviceNameOptIn=true
ClientProxy 直接:(默认值)设备直接连接到终结点。
系统:设备使用系统代理进行连接,无需身份验证。
用户:设备使用用户帐户的 Internet 配置进行连接。 连接可能不需要用户身份验证。
有关详细信息,请参阅 Windows 更新 客户端如何确定用于连接到 Windows 更新 网站的代理服务器ClientProxy=Direct
将更改保存到 RunConfig.bat,然后关闭该文件。
打开提升的 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 中的时区 设置。