Столкнулся с интересной ошибкой 0x80073712 при установке обновлений в Windows Server 2016. Как выяснилось позже, эта ошибка связана с повреждением хранилища компонентов Windows. В этой статье рассмотрим, как исправить хранилище компонентов в Windows 10 / 8.1 и Windows Server 2016/2012 R2 и восстановить работу Windows Update.
При попытке установить обновления в Центре обновления Windows появляется ошибка:
Некоторый файлы обновления отсутствуют или имеются проблемы. Мы попытаемся скачать обновление позже.
Код ошибки: (0x80073712)
Some update files are missing or have problems. We’ll try to download the update.
Error code: (0x80073712)
В первую очередь я попробовал сбросить состояние службы Windows Update и очистить каталог SoftwareDistribution по рекомендациям из статьи “Сброс настроек Центра обновления Windows”, но это не помогло.
С помощью команды dism /online /get-packages
я проверил, что все обновления находятся в статусе Installed.
DISM.exe /Online /Remove-Package /PackageName:Package_for_KB4485447~31bf3856ad364e35~amd64~~10.0.1.1 /quiet /norestart
Довольно долго решал, с какой стороны подойди к этой проблеме, но в рамках траблшутинга мне понадобилось установить на Windows Server 2016 компонент .Net Framework 3.5. При установке компонента .Net с помощью DISM появилась характерная ошибка, которая и натолкнула меня на дальнейшие действия:
The request to add or remove features on the specified server failed. Installation of one or more roles, role services or features failed. The component store has been corrupted. Error: 0x80073712.
Хранилище компонентов повреждено. Ошибка: 0x80073712.
При этом в файле CBS.log можно найти такую строку (%WinDir%\Logs\CBS\CBS.log):
[HRESULT = 0x80073712 - ERROR_SXS_COMPONENT_STORE_CORRUPT]
Как вы видите, по какой-то причине хранилище компонентов вашей системы повреждено, в результате чего Windows Update не может получить данные из манифеста CBS (Component-Based Servicing) необходимые для установки обновлений. Вы можете восстановить хранилище компонентов с помощью встроенного функционала DISM.
В самом простом случае при восстановлении хранилища компонентов вам не потребуется установочный диск с дистрибутивом Windows. В этом случае для восстановления система будет использовать файлы хранилища на локальном диске и сайт Windows Update (локальный WSUS сервер не может быть использован для восстановления компонентов).
В первую очередь проверьте состояние хранилища компонентов с помощью команды:
dism /online /cleanup-image /checkhealth
Если после выполнения анализа появилось сообщение “component store is repairable”, вы можете попытаться восстановить хранилище компонентов командой:
dism /online /cleanup-image /restorehealth
В некоторых случаях это достаточно. Но у меня утилита DISM выдала ошибку:
Error: 0x800f0906
The source files could not be downloaded.
В этом случае для восстановления Windows требуется установочный диск с вашим дистрибутивом Windows. Допустим, вы смонтировали ISO файл с вашим дистрибутивом Windows. Теперь нужно проверить список текущих редакций Windows в файле install.wim в подключенном образе (диске):
dism /Get-WimInfo /WimFile:e:\sources\install.wim
В моем случае установлена редакция Windows Server 2016 Standard (Desktop Experience), поэтому в следующей команде я использую ее индекс – 2.
dism /online /cleanup-image /restorehealth /source:e:\sources\install.wim:2 /LimitAccess
Еще раз проверьте состояние хранилища компонентов:
Dism /Online /Cleanup-Image /CheckHealth
DISM должна вернуть: Повреждение хранилища компонентов не обнаружено (No component store corruption detected).
После восстановления хранилища достаточно перезагрузить Windows и проверить, что обновления и компоненты Windows устанавливаются без ошибки.
А если даже с установочным диском не может восстановить?
Что делали по данной инструкции? Какие ошибки выдавал DISM?
Что в %WinDir%\Logs\CBS\CBS.log?
День добрый. Если по порядку. У пользователя стоит Windows 10 ltsb 2016. Net. Framework 3.5 стоит. Бьет 712 ошибку на установке одного обновления. Проверил пакеты. Все installed. Запустил dism с параметром /checkhealth — написало можно восстановить. Хорошо. Запустил dism с параметром /restorehealth — выбило ошибку 906. Ок. Подключил образ 10. Проверил номер wim образа, запустил /restorehealth с параметром /source. Выбило ошибку 0x800f081f — не удалось найти исходные файлы. И вот что делать делать дальше пока не знаю. Iso файл тот что нужно.
У вас есть install.wim файл или только install.esd? Возможно dism в старых версиях не поддерживал работу с install.esd.
В образе тот же билд Windows 10? Это важно.
По поводу cbs. В нем есть записи про ошибку 0x8007007b — ошибка альтернативного пути. Судя по всему до wim файла dism не добрался. Вопрос — почему? Все строчки после ввода перепроверял.
Я тут где-то прочитал, что параметр /source может быть ввиде /source:WIM:x\xxx. Но я пока не пробовал.
C:\Windows\system32>dism /online /cleanup-image /restorehealth /source:D:\install.wim:2 /LimitAccess
не сработало, получилось так:
C:\Windows\system32>DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:D:\Install.wim:2 /LimitAccess
Большое спасибо! Мне помог ремонт с помощью DISM, и даже перезагрузка не потребовалась!