(С) https://winitpro.ru/index.php/2019/07/08/dism-cleanup-image-restorehealth/
При обновлении ОС возникла ошибка о невозможности установки обновления, после чего последовал откат обновления.
Запуск sfc /scannow выдал ошибку :
"Программа защиты ресурсов Windows обнаружила повреждённые файлы, но не может восстановить некоторые из них / Windows Resource Protection found corrupt files but was unable to fix some of them"
Пробуем восстановить хранилище компонентов образа Windows с помощью DISM:
C:\Windows\system32>dism /online /cleanup-image /restoreHealth
Cистема DISM
Версия: 10.0.14393.4169
Версия образа: 10.0.14393.4169
[==========================100.0%==========================]
Ошибка: 0x800f081f
Не удалось найти исходные файлы.
Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра "Источник". Дополнительные сведения об указании расположения источника см. на веб-странице http://go.microsoft.com/fwlink/?LinkId=243077.
Порядок действий, который дал положительное решение проблемы.
1) Проверяем возможность восстановления хранилища компонентов:
DISM /Online /Cleanup-Image /ScanHealth
Cистема DISM
Версия: 10.0.xxx
Версия образа: 10.0.xxx
[==========================100.0%==========================] Хранилище компонентов подлежит восстановлению.
Операция успешно завершена.
2) На восстанавливаемый хост скачиваем iso-образ с ОС, которая устанавливалась на него, монтируем образ(диск G:)
3) Выведим список доступных версий Windows в установочном образе:
Get-WindowsImage -ImagePath "G:\sources\install.wim"
ImageIndex : 1
ImageName : Windows Server 2016 SERVERSTANDARDCORE
ImageDescription : Windows Server 2016 SERVERSTANDARDCORE
ImageSize : 9 000 000 000 bytes
ImageIndex : 2
ImageName : Windows Server 2016 SERVERSTANDARD
ImageDescription : Windows Server 2016 SERVERSTANDARD
ImageSize : 15 000 000 000 bytes
..............
4) Для восстановления хранилища компонентов из локального WIM-файла с блокированием доступа в интернет выполняем команду:
DISM /online /cleanup-image /restorehealth /source:WIM:G:\sources\install.wim:2 /limitaccess
Cистема DISM
Версия: 10.0.14393.4169
Версия образа: 10.0.14393.4169
[==========================100.0%==========================] Восстановление выполнено успешно.
Операция успешно завершена.
!!Важно, чтобы билд ОС совпадал с билд-ом образа
В cmd:
systeminfo | findstr /B /C:"Версия ОС"
Версия ОС: 10.0.14393 Н/Д построение 14393 - видим билд образа
Чтобы узнать билд iso:
dism /Get-WimInfo /WimFile:E:\sources\install.wim /index:2
...
Сведения об образе : E:\sources\install.wim
Индекс: 2
Имя : Windows Server 2016 Standard (Desktop Experience)
.......
Версия: 10.0.14393
....
Операция успешно завершена.
5) Восстановливаем системные файлы Windows из восстановленного на предыдущем этапе хранилища
sfc /scannow
Начато сканирование системы. Этот процесс может занять некоторое время.
Начало стадии проверки при сканировании системы.
Проверка 100% завершена.
Программа защиты ресурсов Windows обнаружила поврежденные файлы и успешно
их восстановила.....
6) Повторно запускаем sfc /scannow
Начато сканирование системы. Этот процесс может занять некоторое время.
Начало стадии проверки при сканировании системы.
Проверка 100% завершена.
Защита ресурсов Windows не обнаружила нарушений целостности.
Deployment Image Servicing and Management — инструмент для обслуживания и восстановления образов Windows.
Указывает, что команда будет работать с текущей установленной системой, а не с offline-образом (/Image:<путь> для WIM/Windows PE).
То есть /Online = работаем с этой Windows.
Обозначает работу с компонентами системы Windows (компоненты, SxS-хранилище, повреждённые файлы).
Используется вместе с /RestoreHealth или другими ключами.
Инструмент сканирует компоненты Windows на наличие повреждений.
Если обнаруживает повреждённые или отсутствующие файлы, восстанавливает их.
Если не указан /Source, DISM попытается автоматически скачать файлы из Windows Update.
Явно указывает источник исправных файлов, чтобы восстановление не зависело от Windows Update.
Формат:
/Source:<тип>:<путь_к_образу>:<индекс>
wim — тип образа (WIM).
D:\sources\install.wim — путь к файлу WIM на ISO.
2 — индекс образа, соответствующий твоей редакции (Standard GUI в твоём случае).
Без этого параметра DISM может выдавать ошибку 0x800f081f, если не может найти нужные файлы через Windows Update.
Запрещает DISM обращаться к Windows Update или Microsoft Update.
Используется, когда:
Нет доступа к интернету
Нужно точно взять файлы из указанного источника, а не из обновлений
Избегаем скачивания обновлений, которые могут быть несовместимы с билдом ISO
Если /LimitAccess не указан, DISM может попытаться скачать файлы из WSUS или Windows Update, что иногда приводит к ошибке 0x800f081f, особенно на старых билдах или Server Core без доступа к Интернету.