Не устанавливаются обновления Windows Update с ошибкой 800f0831

Иногда при установке обновлений Windows происходят ошибки, и иногда они влияют не только на одно конкретное обновление, но и начинают мешать в дальнейшем.

Ниже набросаю чеклист, для борьбы с этим неприятным явлением с примерами из моей практики

Симптом: не устанавливаются обновления Windows Update с ошибкой 800f0831. Это касается не всех подряд обновлений, а какой-то части из них. Проблемы с установкой могут тянуться месяцами, без особого влияния на сервер в целом.

  1. Проверьте логи CBS, они расположены тут:
    C:\Windows\Logs\CBS\CBS.log
    Обычно в них можно найти строку с упоминанием о проблеме поиском вхождения «, Error» (В нашем случае это: Failed to resolve package ‘Package_1103_for_KB4462926~31bf3856ad364e35~amd64~~6.3.1.5’ [HRESULT = 0x800f0831 — CBS_E_STORE_CORRUPTION]). Часто там ссылаются на ранее некорректно установленное обновление, или побитое хранилище. Запоминаем виновника торжества (в нашем случае это KB4462926 Конкретная часть Package_1103 — нам не принципиальна. Все равно удалять\лечить будем все KB целиком)
  2. Пробуем установить разные обновления по отдельности, каждый раз проверяем CBS-лог, убеждаемся, что проблема именно в этом самом криво установленном обновлении
  3. Идем на http://catalog.update.microsoft.com и скачиваем интересующее нас обновление из первоисточника
  4. Распаковываем его из MSU до *.cab (можно обычным 7-zip, например)
  5. Дальше начинаем играться разными методами. Какой именно сработает — сложно предсказать
    1. Перенастраиваем источник обновлений на глобальный Windows update (отключаем от WSUS если он используется)
    2. Удаляем в WSUS запись для этого сервера (если он тянет обновления именно с WSUS). Это нужно, т.к. при настройке на WSUS могут некорректно отрабатывать ключи /Online в утилите DISM. Подробнее тут
    3. Пробуем полечить хранилище с помощью команд
      DISM /Online /Cleanup-Image /CheckHealth (проверяет «флаг состояния хранилища». время выполнения 10-20 сек)
      DISM /Online /Cleanup-Image /ScanHealth (собственно сканирует само хранилища на предмет онаружения в нем ошибок. Время выполнения 10-20 мин)
      DISM /Online /Cleanup-Image /RestoreHealth (пытается полечить хранилище. время выполнения 10-20 мин)
    4. Часто вышеприведенные команды не дают результата, поэтому идем далее. Пробуем удалить битое обновление командой DISM /online /remove-package /packagepath:E:\Distrib\KB4462926\unpack\Windows8.1-KB4462926-x64.cab Используем именно ключ /packagepath с полным путем к распакованному обновлению
    5. Если после удаления «битого обновления» нормальные все равно продолжают на него ругаться, что ж попробуйте заново установить это битое обновление. И тут есть нюанс: если просто жмакнуть на MSU файл, система ругается что обновление для нее неподходящее и не ставит его. А вот если запустить команду
      DISM /online /add-package /packagepath:E:\Distrib\KB4462926\unpack\Windows8.1-KB4462926-x64.cab то обновление нормально добавляется в хранилище.

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

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

Post Navigation

Яндекс.Метрика