Раздавая обновления для Windows 7 с помощью WSUS, регулярно сталкиваюсь с одной и той же проблемой. Пользователи, не дождавшись завершения установки, выключают компьютер, в результате чего, недоустановленные обновления на следующих запусках компьютера начинают ставиться бесконечно и безуспешно, фиксируя в журнале код 0x800b0100. Самое простое решение заключается в двукратной установке обновления KB947821 и простейших манипуляциях.
KB947821 (Средство проверки готовности системы к обновлению — CheckSUR) сканирует систему на повреждения, исправляет некоторые из них и создаёт информативный файл C:\Windows\Logs\CBS\CheckSUR.log
Возьмём для примера «зависший» хотфикс KB3123479 и проанализируем CheckSUR.log
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
================================= Checking System Update Readiness. Binary Version 6.1.7601.22471 Package Version 26.0 2016-01-25 10:55 Checking Windows Servicing Packages Checking Package Manifests and Catalogs (f) CBS MUM Corrupt 0x800F0900 servicing\Packages\Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum Line 1: (f) CBS Catalog Corrupt 0x800B0100 servicing\Packages\Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat (f) CBS MUM Corrupt 0x800F0900 servicing\Packages\Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.mum Line 1: (f) CBS Catalog Corrupt 0x800B0100 servicing\Packages\Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.cat (f) CBS MUM Corrupt 0x800F0900 servicing\Packages\Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum Line 1: (f) CBS Catalog Corrupt 0x800B0100 servicing\Packages\Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store Summary: Seconds executed: 1734 Found 3 errors CBS MUM Corrupt Total count: 3 CBS Catalog Corrupt Total count: 3 Unavailable repair files: servicing\packages\Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum servicing\packages\Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.mum servicing\packages\Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum servicing\packages\Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat servicing\packages\Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.cat servicing\packages\Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat |
Видим, что MUM и CAT-файлы хотфикса повреждены, в чём можно дополнительно убедиться открыв их. Как правило, в случаях проблем с обновлениями из-за отключения питания компьютера, эти файлы забиты нулями вместо полезной информации. Скачиваем вручную проблемный хотфикс с сервера M$ и открываем архиватором его, а затем находящийся в нём файл Windows6.1-KB3123479-x86.cab. В данном CAB-архиве, в числе прочих и содержатся интересующие нас MUM и CAT-файлы.
KB947821 кроме LOG-файла создаёт во временной папке директорию CheckSUR с вложенными подкаталогами, среди которых, согласно файлу CheckSUR.log, нас будет интересовать путь CheckSUR\servicing\Packages. Копируем по этому пути все или только необходимые файлы из Windows6.1-KB3123479-x86.cab.
Примечание
В CAB-архиве вы не найдете файлы:
Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum
Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat
Так как в исходном виде они называются update.mum и update.cat Переименуйте их вручную в требуемый вид.
После этих манипуляций повторно запустите KB947821, дождитесь завершения его работы и снова загляните в CheckSUR.log, чтобы убедиться в исправлении ошибок:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
================================= Checking System Update Readiness. Binary Version 6.1.7601.22471 Package Version 26.0 2016-01-25 11:32 Checking Windows Servicing Packages Checking Package Manifests and Catalogs (f) CBS MUM Corrupt 0x800F0900 servicing\Packages\Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum Line 1: (fix) CBS MUM Corrupt CBS File Replaced Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum from Cabinet: C:\Windows\CheckSur\v1.0\windows6.1-7601-x86-cab3.cab. (fix) CBS Paired File CBS File also Replaced Package_2_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat from Cabinet: C:\Windows\CheckSur\v1.0\windows6.1-7601-x86-cab3.cab. (f) CBS MUM Corrupt 0x800F0900 servicing\Packages\Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.mum Line 1: (fix) CBS MUM Corrupt CBS File Replaced Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.mum from Cabinet: C:\Windows\CheckSur\v1.0\windows6.1-7601-x86-cab3.cab. (fix) CBS Paired File CBS File also Replaced Package_for_KB3123479_SP1~31bf3856ad364e35~x86~~6.1.1.0.cat from Cabinet: C:\Windows\CheckSur\v1.0\windows6.1-7601-x86-cab3.cab. (f) CBS MUM Corrupt 0x800F0900 servicing\Packages\Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum Line 1: (fix) CBS MUM Corrupt CBS File Replaced Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.mum from Cabinet: C:\Windows\CheckSur\v1.0\windows6.1-7601-x86-cab3.cab. (fix) CBS Paired File CBS File also Replaced Package_for_KB3123479~31bf3856ad364e35~x86~~6.1.1.0.cat from Cabinet: C:\Windows\CheckSur\v1.0\windows6.1-7601-x86-cab3.cab. Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store Summary: Seconds executed: 424 Found 3 errors Fixed 3 errors CBS MUM Corrupt Total count: 3 Fixed: CBS MUM Corrupt. Total count: 3 Fixed: CBS Paired File. Total count: 3 |
Если у вас есть ПО для удаленного администрирования компьютеров, то всё это можно сделать со своего рабочего места, не отрывая пользователя от работы:
1. Тихий запуск KB947821 — Windows6.1-KB947821-v34-x86.msu /quiet /norestart
2. Анализ CheckSUR.log и копирование на удаленную машину необходимых файлов
3. Повторный тихий запуск KB947821
Как вы понимаете, описанная ситуация не связана со способом установки обновлений и упомянутый в статье WSUS здесь совершенно не причём. Прерванная установка обновлений у домашнего пользователя может вызвать точно такую же проблему, решение которой вам теперь известно.