Ошибка установки обновлений 800F0831

Метки:  , , ,

Так уж вышло, что пришлось дообновлять старые продуктивные сервера, работающие на Windows 2012R2, на которые по каким-либо причинам не установились последние патчи безопасности. Задача была установить последнее [свободно-распространяемое] обновление безопасности KB5031419 (в контексте нашей статьи будем называть его устанавливаемым). На все сервера кумулятивное обновление устанавливалось в штатном режиме, но в какой-то момент под руку попалась система, на которой установка обновления из KB завершалась с ошибкой "following updates were not installed" (обновления не установлены) с указанием нашего обновления. Попытка обновиться через Центр Обновления была более информативной и подсветила ошибку обновления 800f0831:

ошибка 800f0831

Очевидно, что у нас в компонентной модели ОС имеются ошибки и их следует исправить. Алгоритм действий следующий:

  • Сразу после попытки установки обновления и возникновения ошибки, открываем лог-файл [компонентной модели] C:\Windows\Logs\CBS\CBS.log и производим поиск по ключевой фразе "error" или по коду ошибки "800f0831":
    в найденном фрагменте у нас система ругается на пакет Package_2435_for_KB5009624~31bf3856ad364e35~amd64~~6.3.1.12 (иначе: пакет Package_2435, входящий в состав обновления KB5009624). Скорее всего именно это "битое" обновление не даёт нам произвести установку изначально устанавливаемого обновления (KB5031419). Конечно же, в вашем случае ID обновлений могут быть другими.
  • На сайте Каталога центра обновления Майкрософт, в поле поиска вбиваем упомянутое в логе "битое" обновление (KB5009624), ищем его и скачиваем.
  • Распаковываем содержимое скачанного .MSU-файла в произвольный каталог (например, при помощи штатного WinRAR, 7zip и прч.). В целевом каталоге должно появиться примерно такое вот содержимое:
  • Теперь попытаемся произвести восстановление хранилища компонентов;
  • После окончания процесса восстановления пробуем опять произвести установку [изначального, устанавливаемого] обновления (напоминаю, у меня это KB5031419).
  • Если обновление опять вылетает с ошибкой, и в логах у нас снова ругается на то же "битое" обновление, то удаляем его командой:

    DISM /online /remove-package /packagepath:C:\TEMP\Windows8.1-KB5009624-x64.cab

  • Еще раз пробуем установить изначальное [устанавливаемое] обновление. Если опять получаем ошибку и всё-равно система в логах продолжает ругаться на то же "битое обновление" (которое вроде как только что мы удалили из системы), то теперь уже устанавливаем "битое" обновление (у нас это KB5009624) двойным щелчком по .MSU файлу. Если получаем ошибку "Обновление не применимо к этому компьютеру", то ставим его через DISM из распакованного ранее .cab-файла:

    DISM /online /add-package /packagepath:C:\TEMP\Windows8.1-KB5009624-x64.cab

  • Опять пробуем установить устанавливаемое изначально обновление (KB5031419).
  • дополнение: если на каком-либо из этапов будут попадаться другие "битые" пакеты без привязки к какому-либо обновлению. например:

    то тоже удаляем их такой вот командой:

    DISM /online /remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~9600.21620.1.12

    *соответственно, в качестве аргумента PackageName указывайте найденный в вашей системе "битый" пакет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *