Сброс центра обновления Windows

Метки:  ,

Центр обновления Windows является механизмом операционной системы, который имеет множество точек потенциального отказа: ошибки в структуре зависимостей (связности) обновлений друг с другом, нестабильная среда передачи данных (клиент-сервер), превышение жестко заданного размера различных внутренних структур (к примеру: списков обновлений), повреждение файлов хранилища компонентов, повреждение базы/каталога распространения, задвоение идентификаторов клиентов и многое многое другое. Ошибок, возникающих в процессе работы Центра обновления Windows, более чем достаточно, по самым скромным подсчетам имеется порядка 700 событий отказа. На различных этапах функционирования центра обновлений Windows: получения, обработки и установки обновлений, данные пакетов обновлений могут повреждаться, либо сами обновления могут переходить в неустанавливаемое состояние из-за отсутствующих/поврежденных зависимостей. На основании изложенного, к слову сказать, далеко не полного перечня проблем центра обновления Windows, можно прийти к выводу, что вероятность сбоев в его работе довольно высока, что фактически и подтверждается миллионами сообщений на данную тематику с официальных форумов Microsoft. Результатом сбоев для конечного пользователя является возникновение разного рода отказов (ошибок) в процессе установки обновлений операционной системы.

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

Статус Символическое имя
0x80070643 ERROR_INSTALL_FAILURE
0x80070652 ERROR_INSTALL_ALREADY_RUNNING
0x8000FFFF E_UNEXPECTED
0x80070002 ERROR_FILE_NOT_FOUND
0x8007000B COR_E_BADIMAGEFORMAT
0x80070490 E_PROP_ID_UNSUPPORTED
0x80070643 ERROR_INSTALL_FAILURE
0x80070646 ERROR_UNKNOWN_FEATURE
0x80070652 ERROR_INSTALL_ALREADY_RUNNING
0x80240020 SUS_E_NO_INTERACTIVE_USER
0x80246008 SUS_E_DM_FAILTOCONNECTTOBITS
0x80246009 WU_E_DM_BITSTRANSFERERROR
0x80200053 BG_E_VALIDATION_FAILED

В практике устранения инцидентов, возникающих при работе центра обновления Windows, приведенная в таблице выше группа ошибок имеет следующие причины:

  • повреждение/рассинхронизированное состояние содержимого, располагающегося в структуре каталога распространения (SoftwareDistribution);
  • проблемы функционирования ключевых служб центра обновления Windows;
  • проблемы в работе Фоновой интеллектуальной службы передачи (BITS) (Queue Manager), производящей подкачку обновлений;
  • некорректные идентификаторы (привязки) клиента локального WSUS;
  • некорректная настройка параметров (дескрипторов) безопасности служб центра обновления Windows;
  • ошибки в регистрации компонентов служб (ключевых системных библиотек);
  • проблемы соединения клиента-сервера (проблемы в работе транзитных/локальных прокси-серверов);

Естественно, самым надежным алгоритмом поиска причины отказа было бы проведение анализа деталей при помощи файлов журнала %Windir%\WindowsUpdate.log и %Windir%\Logs\CBS\CBS.log, тем не менее это очень долгий и кропотливый путь, итогом которого, с большой вероятность, будет набор методик, описанных в данной статье. Разработчики все это уже сделали за нас :) Поэтому логичнее воспользоваться уже опубликованным, официально-рекомендованным разработчиками методом, носящем название сброс центра обновления Windows (Windows Update Reset).

Сброс в ручном режиме

Следующие команды выполнять из-под учетной записи с правами локального администратора (с повышенными привилегиями).

Итак, для исправления ситуации, возникающей при повреждении/рассинхронизации содержимого папки %Windir%\SoftwareDistribution, Microsoft рекомендует восстановить "исходное" состояние компонентов Центра обновления Windows, для этого нам предлагается выполнить следующую последовательность действий:

  1. Откройте окно командной строки. Для этого нажмите и удерживайте (или щелкните правой кнопкой мыши) кнопку с эмблемой Windows на панели задач, а затем выберите пункт Командная строка (Администратор). Если включен Контроль учетных записей (UAC), то в появившемся окне Контроль учетных записей нажмите кнопку Да. Либо нажмите клавишу Пуск -> в строке поиска и введите команду cmd. В результатах поиска щелкните правой кнопкой мыши на пункте, в ниспадающем меню выберите пункт Запуск от имени администратора. Либо нажмите клавишу с эмблемой Win + R, введите в поле ввода открывшегося окна команду cmd и нажмите клавишу ВВОД.
  2. Остановите работу следующих служб: Фоновая интеллектуальная служба передачи (BITS), Центр обновления Windows, Удостоверение приложения, Служба криптографии и Узел агента SMS (если используется). Для этого в командной строке введите (последовательно) следующие команды:
    net stop bits
    net stop wuauserv
    net stop appidsvc
    net stop cryptsvc
    net stop ccmexec
  3. Удалите файлы очередей Фоновой интеллектуальной службы передачи (BITS) (файлы вида qmgr?.dat). Для этого введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:
    del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
  4. Переименуйте каталог распространения и каталог сигнатур пакетов обновлений (создайте их резервные копии). Для этого в командной строке введите следующие команды:
    ren %systemroot%\SoftwareDistribution SoftwareDistribution.bak
    ren %systemroot%\system32\catroot2 catroot2.bak
  5. Установите для служб Фоновая интеллектуальная служба передачи (BITS) и Центр обновления Windows разрешения по умолчанию (делается это на случай, если разрешения для службы были изменены). Для этого в командной строке введите следующие команды:

    sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)

    sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)

  6. Только для систем, использующих SCCM (System Center Control Manager): удалите содержимое папки C:\CACHE\ccmcache;
  7. Повторно зарегистрируйте файлы служб Фоновая интеллектуальная служба передачи (BITS) и Центр обновления Windows. Для этого в командной строке введите следующую команду:

    cd /d %windir%\system32

    затем выполните серию команд:

    regsvr32.exe /s atl.dll
    regsvr32.exe /s urlmon.dll
    regsvr32.exe /s mshtml.dll
    regsvr32.exe /s shdocvw.dll
    regsvr32.exe /s browseui.dll
    regsvr32.exe /s jscript.dll
    regsvr32.exe /s vbscript.dll
    regsvr32.exe /s scrrun.dll
    regsvr32.exe /s msxml.dll
    regsvr32.exe /s msxml3.dll
    regsvr32.exe /s msxml6.dll
    regsvr32.exe /s actxprxy.dll
    regsvr32.exe /s softpub.dll
    regsvr32.exe /s wintrust.dll
    regsvr32.exe /s dssenh.dll
    regsvr32.exe /s rsaenh.dll
    regsvr32.exe /s gpkcsp.dll
    regsvr32.exe /s sccbase.dll
    regsvr32.exe /s slbcsp.dll
    regsvr32.exe /s cryptdlg.dll
    regsvr32.exe /s oleaut32.dll
    regsvr32.exe /s ole32.dll
    regsvr32.exe /s shell32.dll
    regsvr32.exe /s initpki.dll
    regsvr32.exe /s wuapi.dll
    regsvr32.exe /s wuaueng.dll
    regsvr32.exe /s wuaueng1.dll
    regsvr32.exe /s wucltui.dll
    regsvr32.exe /s wups.dll
    regsvr32.exe /s wups2.dll
    regsvr32.exe /s wuweb.dll
    regsvr32.exe /s qmgr.dll
    regsvr32.exe /s qmgrprxy.dll
    regsvr32.exe /s wucltux.dll
    regsvr32.exe /s muweb.dll
    regsvr32.exe /s wuwebv.dll

  8. Удалить идентификаторы привязки клиента к локальному серверу WSUS:
    REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
    REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
    REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
  9. Перезапустите Windows Sockets (Winsock). С этой целью введите в командной строке приведенную ниже команду:
    netsh winsock reset
  10. Установите прямой (в обход прокси-сервера) доступ в Сеть для приложений, работающих через функции интерфейса WinHTTP (фактически протокол HTTP/1.1). Для этого измените параметры локальной настройки прокси-сервера.
    Если у вас операционная система Windows XP:
    proxycfg.exe -dЕсли у вас установлена другая (более новая) версия Windows:
    netsh winhttp reset proxy
  11. Запустите следующие службы: Узел агента SMS, Фоновая интеллектуальная служба передачи (BITS), Центр обновления Windows, Удостоверение приложения и Служба криптографии. Для этого в командной строке последовательно выполните следующие команды:
    net start ccmexec
    net start bits
    net start wuauserv
    net start appidsvc
    net start cryptsvc
  12. Только для Windows Vista: очистите "список ожидания" Фоновой интеллектуальной службы передачи (BITS). Для этого выполните в командной строке команду:
    bitsadmin.exe /reset /allusers
  13. Установите последнюю версию агента Центра обновления Windows;
  14. Перезагрузите компьютер (операционную систему).

Автоматический сброс (скрипт)

Понятное дело что не всегда хочется вот так вот сидеть и руками вколачивать в командную строку кучу команд. Для самых ленивых (в том числе и для меня) предназначается следующий фрагмент скрипта:

Его можно закопипастить и сохранить в виде файла с именем (например) WindowsUpdateReset.bat.

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

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