确定 Windows 更新导致 PC 无法启动的根本原因

确定 Windows 更新导致 PC 无法启动的根本原因

我周围的数十台 Windows 8.1 PCFatal Error: C0000022在安装 KB4541505 或 KB4541509 后显示无法继续启动。自动修复失败;无法通过系统还原恢复;DISM 无法回滚更新,因为映像无法使用,并且/Cleanup-Image会失败;删除 SoftwareDistribution 文件夹不会阻止在启动时启动更新。

我已经取消批准 WSUS 中的更新,并且正在重新映像受影响的 PC。有什么方法可以找出发生了什么?幸运的是,其中一台 PC 目前是备用的,因此可以用作测试机器。如果我将其恢复到此状态,然后将 HD 安装在另一台 PC 上,是否有任何日志可以检查?

Microsoft 错误查找工具给出 0xC0000022 作为

  STATUS_ACCESS_DENIED                                          ntstatus.h
# {Access Denied}
# A process has requested access to an object, but has not
# been granted those access rights.

更新重启后显示的错误消息被截断,但似乎是在说一些有关注册表的事情。(\Regis...)

另外,如果我找到原因,下一步该怎么做?这些 KB 是 2020 年 3 月的安全更新。无论是什么原因导致的,都可能包含在 2020 年 4 月的汇总中。再也不修补 Windows 8.1 机器不是一个可行的选择。向 Microsoft 开具支持单会有什么用处吗?


更新:

我成功地从测试电脑中提取了 CBS.log。我认为有趣的部分在这里:

2020-03-19 11:11:44, Info                  CBS    Running poqexec with: C:\windows\System32\poqexec.exe /noreboot /commit_critical_poq /transaction 3496 /display_progress \SystemRoot\WinSxS\pending.xml
2020-03-19 11:11:44, Info                  CBS    Waiting for poqexec.exe to complete...
2020-03-19 11:11:44, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 15.
2020-03-19 11:11:46, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 17.
2020-03-19 11:11:47, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 20.
2020-03-19 11:11:48, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 24.
2020-03-19 11:11:49, Info                  CBS    Waiting for poqexec.exe to complete...
2020-03-19 11:11:49, Info                  CBS    Progress: UI message updated. Operation type: Update. Stage: 1 out of 1. Percent progress: 29.
2020-03-19 11:11:50, Info                  CBS    Failure in poqexec.exe while processing updates. [HRESULT = 0x80070005 - E_ACCESSDENIED]
2020-03-19 11:11:50, Info                  CBS    SQM: Reporting poqexec status with status: 0xc0000022, failed file: (null), interfering process: (null), context: Shutdown, first merged sequence: 583
2020-03-19 11:11:50, Info                  CBS    SQM: Upload requested for report: PoqexecStatus, session id: 142861, sample type: Standard
2020-03-19 11:11:50, Info                  CBS    SQM: Queued 5 file(s) for upload with pattern: C:\windows\servicing\sqm\PoqexecStatus_*_std.sqm, flags: 0x2
2020-03-19 11:11:50, Error                 CBS    Shtd: Failed while processing non-critical primitive operations queue. Non-critical primitives will be retried from SMSS. [HRESULT = 0x80070005 - E_ACCESSDENIED]

这让我找到了 poqexec.log,其中包含以下内容:

1d5fddf2c9822ce: 8b4, c0000022, 169d, 0, SetKeySecurity ;\Registry\MACHINE\System\CurrentControlSet\Control\Lsa

有人知道如何解析 poqexec.log 吗?c0000022 是错误;SetKeySecurity 后跟注册表路径似乎不言自明;但其他参数呢?

我可以在这个注册表项上检查一些东西吗?

更新2

再试一次后,我还从 WinSxS 文件夹中提取了待处理.xml。我认为这部分让我更详细地了解了这个过程

<SetKeySecurity path="\Registry\MACHINE\System\CurrentControlSet\Control\Lsa" securityDescriptor="binary base64:AQAUnJQAAACgAAAAFAAAABwAAAACAAgAAAAAAAIAeAAFAAAAAAIYAD8ADwABAgAAAAAABSAAAAAgAgAAAAoUAD8ADwABAQAAAAAAAwAAAAAAAhQAPwAPAAEBAAAAAAAFEgAAAAACGAAZAAIAAQIAAAAAAAUgAAAAIQIAAAACGAAZAAIAAQIAAAAAAA8CAAAAAQAAAAEBAAAAAAAFEgAAAAEBAAAAAAAFEgAAAA==" flags="0x00000001" />

我用的是二进制SD转SDDL方法 Win32_SecurityDescriptorHelper 使用 Powershell Invoke-CimMethod 解析 base64,这给了我这个 SDDL

O:SYG:SYD:PAI(A;CI;KA;;;BA)(A;CIIO;KA;;;CO)(A;CI;KA;;;SY)(A;CI;KR;;;BU)(A;CI;KR;;;AC)S:AI

这与更新之前此密钥的 SDDL 相同。

我不知道 XML 的标志部分是什么意思。

相关内容