Десятки компьютеров с Windows 8.1 в моей среде показывают Fatal Error: C0000022
и не может больше загружаться после установки KB4541505 или KB4541509. Автоматический ремонт не работает; их нельзя восстановить с помощью функции «Восстановление системы»; DISM не может откатить обновление из-за того, что образ не работает, и /Cleanup-Image
не удастся; и удаление папки SoftwareDistribution не препятствует запуску обновления при загрузке.
Я не одобрил обновления в WSUS и сейчас создаю заново образ затронутых компьютеров. Есть ли способ узнать, что происходит? К счастью, один из компьютеров в настоящее время запасной, поэтому его можно использовать в качестве тестовой машины. Если я верну его в это состояние, а затем смонтирую HD на другом ПК, можно ли просмотреть какие-либо журналы?
Инструмент поиска ошибок 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...)
Кроме того, если я найду причину, каков мой следующий шаг? Эти КБ являются обновлениями безопасности за март 2020 г. Что бы ни стало причиной этого, предположительно будет включено в накопительные пакеты за апрель 2020 года. Больше никогда не исправлять машины с 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, за которым следует путь в реестре, кажется очевидным; а как насчет других аргументов?
Есть что-нибудь, что я могу проверить с помощью этого регистрационного ключа?
Еще раз я извлек файл pending.xml из папки WinSxS. Я думаю, что эта часть дает мне более подробную информацию о процессе
<SetKeySecurity path="\Registry\MACHINE\System\CurrentControlSet\Control\Lsa" securityDescriptor="binary base64:AQAUnJQAAACgAAAAFAAAABwAAAACAAgAAAAAAAIAeAAFAAAAAAIYAD8ADwABAgAAAAAABSAAAAAgAgAAAAoUAD8ADwABAQAAAAAAAwAAAAAAAhQAPwAPAAEBAAAAAAAFEgAAAAACGAAZAAIAAQIAAAAAAAUgAAAAIQIAAAACGAAZAAIAAQIAAAAAAA8CAAAAAQAAAAEBAAAAAAAFEgAAAAEBAAAAAAAFEgAAAA==" flags="0x00000001" />
Я использовал BinarySDToSDDL метод Win32_SecurityDescriptorHelper для анализа base64 с помощью Powershell Invoke-CimMethod, который дал мне этот 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 с флагами.