Windows 7 и бесконечный поиск обновлений

|

windows7-stuck-checking-for-update-000.pngСлужба обновления Windows в современных реалиях относится к числу критически важных, поэтому неполадки с ней следует решать в первую очередь, ведь своевременное получение обновлений - это залог безопасности системы. Особенно это касается старых систем, которые просто в силу возраста могут иметь большее количество потенциально уязвимых служб и компонентов. Сегодня мы расскажем вам об одном интересном случае, когда Windows 7 полностью перестает искать и устанавливать обновления, точнее делает этот процесс бесконечным.

Судя по отзывам в сети интернет, появление данной неисправности совпало с переходом Windows 7 на новую систему обновлений, поэтому многие привычно винят в происходящем компанию Microsoft, а особо активные даже составляют списки "нерекомендуемых" обновлений, куда иногда попадает даже Convenience Rollup для Windows 7 (KB3125574). Такой подход вряд ли можно назвать разумным, так как на наш взгляд многие путают причину со следствием.

Переход на новую систему обновлений - мера во многом вынужденная, так как количество необходимых для Windows 7 обновлений, а также возможных вариантов их комбинаций давно превысило все разумные пределы и говорить о какой-либо стабильности и предсказуемости данной системы стало решительно невозможно. Наш опыт показывает, что гораздо чаще к подобным проблемам приводят выборочные обновления, но винить пользователей в этом сложно.

Если система только установлена или автоматическое обновление выключено, то приведение ее в актуальное состояние способно занять большое количество времени, в тоже время для работы необходимо обновить некоторые компоненты, скажем Internet Explorer, а также закрыть наиболее критичные уязвимости. В результате набор установленных на машину обновлений более напоминает сборную солянку и может приводить к самым неожиданным результатам.

Однажды обновления отказалась устанавливать одна из виртуальных машин в лаборатории, которую мы обновляли от случая к случаю. Основным симптомом данной неисправности является бесконечный поиск обновлений:

windows7-stuck-checking-for-update-001.pngЕсли скачать и попробовать установить обновления вручную, то получим аналогичную картину:

windows7-stuck-checking-for-update-002.pngНикакие наиболее очевидные способы исправления такого поведения системы, в том числе описанные на сайте Microsoft, успеха не принесли, поэтому мы взялись за подробное изучение логов системы, которые можно найти в директории C:\Windows\Logs\CBS. Довольно скоро стало понятно, что система не может завершить установку ряда обновлений, оставляя в логе следующие сообщения:

CBS    Appl: detectParent: package: Package_40_for_KB3210131~31bf3856ad364e35~amd64~~6.1.1.0, no parent found, go absent

Налицо типичный пример нарушенных зависимостей, пакет обновления пытается найти родительский пакет и не может этого сделать, что выливается в бесконечный цикл поиска.

Примерный сценарий возникновения данной проблемы такой: система скачивает некоторое количество обновлений и пытается произвести их установку, но так как это длительный процесс, то завершить его чаще всего не удается. Например, достаточно распространен сценарий, когда пользователи просто принудительно выключают системный блок, получив при завершении работы сообщение, что следует установить пару десятков обновлений.

Затем в систему руками устанавливается обновление, которое ломает зависимости для уже скачанных и начавших устанавливаться пакетов. В результате система безуспешно пытается разрешить зависимости, полностью парализуя работу службы.

Также при принудительном выключении системы в процессе обновления может возникнуть несколько иная ошибка, которая связана с повреждением устанавливаемого пакета, что приводит к бесконечному процессу установки:

windows7-stuck-checking-for-update-003.pngМеханизм данной проблемы очень схож с предыдущим, перед установкой обновлений система пытается закончить уже начатый процесс, но не может это сделать, так как пакет поврежден, исправить повреждение она также не может, поэтому снова все выливается в бесконечный цикл, только уже подготовки к установке.

Теперь, когда причины возникновения и механизм действия проблемы понятен, следует найти способ ее исправления. В данном случае нам на помощь придет инструмент DISM, запустим командную строку от имени администратора и выполним короткую команду:

Dism /Online /Cleanup-Image /ScanHealth

Её выполнение может занять продолжительное время и в результате вы должны получить сообщение, что операция успешно завершена. Подробное описание найденных ошибок можно посмотреть в файле лога по указанному пути:

windows7-stuck-checking-for-update-004.pngПосле чего желательно удалить все содержимое папки C:\Windows\SoftwareDistribution\Download и перезагрузить систему.

windows7-stuck-checking-for-update-005.pngТеперь можем снова попробовать выполнить поиск и установку обновлений, все должно работать.

windows7-stuck-checking-for-update-006.pngКак видим, мы не только устранили проблему, но и разобрались в причинах ее возникновения, что гораздо более важно. Так как именно понимание происходящих в системе процессов дает необходимые знания и позволяет осмысленно подходить к процессам диагностики, в отличие от бездумного копирования найденных в интернете команд.

 

Подписка на блог

Наш канал на YouTube Мы в Твиттере

Архивы по месяцам

Реклама

Статистика

 

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

География

Flag Counter

Реклама

Об этой записи

Сообщение опубликовано 05.03.2017 11:55. Автор — Уваров А.С..

Предыдущая запись — Как перенести сайт на другой хостинг без простоя и потери данных

Следующая запись — Админу на заметку - 21. Используем PowerShell для синхронизации каталогов

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Реклама

Облако тегов