Столкнулся с интересной ошибкой 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? Это важно.
Та же ситуация.
Файла install.wim нет.
Есть какие-то идеи?
Значит вам нужен файл install.esd. Из него можно извлечь install.wim файл:
dism /export-image /SourceImageFile:c:\iso\install.esd /SourceIndex:1 /DestinationImageFile: c:\iso\win10pro.wim /Compress:max /CheckIntegrity
подробности тут https://winitpro.ru/index.php/2014/10/30/kak-konvertirovat-install-esd-v-ustanovochnyj-iso-obraz/
По поводу 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, и даже перезагрузка не потребовалась!
Чтоо делать если у меня нет диска с дистрибутивом? Новый ноутбук с установленной Windows 10 Домашней
Последнее, что ввёл:
Хранилище компонентов подлежит восстановлению.
Операция успешно завершена.
PS C:\Windows\system32> dism /online /cleanup-image /restorehealth
Cистема DISM
Версия: 10.0.19041.844
Версия образа: 10.0.19042.870
[==========================100.0%==========================]
Ошибка: 0x800f081f
Не удалось найти исходные файлы.
Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра «Источник». Дополнительные сведения об указании расположения источника см. на веб-странице https://go.microsoft.com/fwlink/?LinkId=243077.
Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log
PS C:\Windows\system32>
Такая же ошибка, нашел решение?
Такая же ошибка и в логе указано следующее
2021-07-01 13:29:53, Error DISM DISM Package Manager: PID=9704 TID=1360 Failed finalizing changes. — CDISMPackageManager::Internal_Finalize(hr:0x800f081f)
2021-07-01 13:29:53, Error DISM DISM Package Manager: PID=9704 TID=1360 The source files could not be found; their location must be specified using the /source option to restore the feature. — GetCbsErrorMsg
2021-07-01 13:29:53, Error DISM DISM Package Manager: PID=9704 TID=1360 Failed processing package changes with session option CbsSessionOptionRepairStoreCorruption — CDISMPackageManager::RestoreHealth(hr:0x800f081f)
2021-07-01 13:29:53, Error DISM DISM Package Manager: PID=9704 TID=1360 The source files could not be found; their location must be specified using the /source option to restore the feature. — GetCbsErrorMsg
2021-07-01 13:29:53, Error DISM DISM Package Manager: PID=9704 TID=1360 Failed to restore the image health. — CPackageManagerCLIHandler::ProcessCmdLine_CleanupImage(hr:0x800f081f)
2021-07-01 13:29:53, Error DISM DISM Package Manager: PID=9704 TID=1360 Failed while processing command cleanup-image. — CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f081f)
windows 11 NET Framework 3.5 (выклучает NET 2.0 и 3,0) 0x80073712 такой ошибка даеть что мне делат скажите пожалуста