DISM перевірка і відновлення системних компонентів образу Windows 10

Для перевірки цілісності системних файлів і відновлення пошкоджених файлів (бібліотек) компонентів в Windows (Windows Server) можна використовувати команди SFC і DISM (Deployment Image Servicing and Management). Дані утиліти можуть бути вкрай корисними, якщо операційна система Windows стає нестабільною, з'являються помилки при запуску стандартних додатків або служб, після вірусного зараження і т.д.

Утиліта DISM включена до складу Windows, починаючи з Vista і може бути використана в усіх підтримуваних версіях починаючи з Windows 7 / Windows Server 2008 R2 (є обмеження) закінчуючи останніми білд Windows 10 / Windows Server 2019. У цій статті ми розглянемо, як використовувати утиліти DISM і SFC для перевірки і відновлення цілісності образу і системних файлів Windows 10.

зміст:

  • SFC / scannow: Перевірка і відновлення системних файлів Windows
  • DISM / RestoreHealth: відновлення сховища компонентів образу Windows
  • Відновлення пошкодженого сховища компонентів Windows 10 / Server 2016 за допомогою PowerShell
  • Відновлення сховища компонентів оффлайн якщо Windows не завантажується

SFC / scannow: Перевірка і відновлення системних файлів Windows

Утиліту DISM для відновлення Windows зазвичай рекомендується використовувати після утиліти перевірки цілісності системних файлів SFC (System File Checker). команда sfc / scannow сканує захищені системні файли Windows, і, якщо вони відсутні або пошкоджені, спробує відновити їх оригінальні копії зі сховища системних компонентів Windows (каталог C: \ Windows \ WinSxS).

Якщо команда sfc / scannow повертає помилку "Програма захисту ресурсів Windows виявила пошкоджені файли, але не може відновити деякі з них / Windows Resource Protection found corrupt files but was unable to fix some of them", Швидше за все утиліта не змогла отримати необхідні файлу зі сховища компонентів (образа) Windows.

В цьому випадку вам потрібно спробувати відновити сховище компонентів (ваш образ Windows) за допомогою DISM.

Після відновлення образу ви можете повторно використовувати утиліту SFC для відновлення системних файлів.

DISM / RestoreHealth: відновлення сховища компонентів образу Windows

Для сканування образу Windows на наявність помилок і їх виправлення використовується параметр DISM / Cleanup-image. Розглянуті нижче команди виконуються в командному рядку, запущеної з правами адміністратора.

Щоб перевірити наявність ознаки пошкодження сховища компонентів образу Windows (прапора CBS), який виставив один із системних процесів, виконайте наступну команду (не застосовується до Windows 7 / Server 2008R2):

DISM / Online / Cleanup-Image / CheckHealth

При запуску цієї команди не виконується сканування сховища, перевіряються лише записані раніше значення і події в журналі Windows. Зміни не вносяться. Команда перевірить, чи не позначений чи образ як пошкоджений і чи можливо усунути дане пошкодження.

У цьому прикладі команда повернула, що з чином все добре:

No component store corruption detected.
The operation completed successfully.

DISM / Online / Cleanup-Image / ScanHealth - виконати повне сканування сховища компонентів на наявність пошкоджень в системних образу Windows (виконується досить довго від 10 до 30 хвилин).

У Windows 7 / Windows Server 2008 R2, щоб працював параметр DISM / ScanHealth потрібно встановити окреме оновлення KB2966583 (Інакше при запуску DISM буде з'являтися "Помилка 87. Параметр ScanHealth не • розпізнано в цьому контексті"). Крім, того ця ж команда в Windows 7 використовується для перевірки сховища і відновлення системних файлів (немає ключів / CheckHealth і / RestoreHealth).

Якщо команда / ScanHealth повертає помилки:

  • Сховище компонентів підлягає відновленню (The component sore is repairable);
  • Помилка: 1726. Не вдалося виконати віддаленому виклику процедури;
  • Помилка: 1910. Чи не знайдений зазначений джерело експорту об'єкта.

Це однозначно говорить про те, що ваш образ Windows 10 пошкоджений і його потрібно відновити.

Щоб виправити помилки, автоматично завантажити та замінити файли пошкоджених або відсутніх компонентів еталонними версіями файлів (бібліотек) з центру оновлень Windows (на комп'ютері повинен бути доступ в Інтернет), виконайте:

DISM / Online / Cleanup-Image / RestoreHealth

Процес сканування і відновлення компонентів може бути досить тривалим (30 хвилин або більше).

Якщо відновлення виконається успішно, з'явиться повідомлення:

Відновлення виявилась успішною. Операція успішно завершена.
The restore operation completed successfully. The operation completed successfully.

Якщо на комп'ютері (сервері) вдається отримати доступ до Інтернет або відключена служба Windows Update, то при відновленні сховища компонентів з'являються помилки виду:

  • 0x800f0906 - Не вдалося завантажити вихідні файли. Вкажіть розташування файлів, необхідних для відновлення компонента, за допомогою параметра Джерело (0x800f0906 - The source files could not be downloaded. Use the source option to specify the location of the files that are required to restore the feature);
  • Помилка: 0x800f0950 - Збій DISM. Операція не виконано (0x800f0950 - DISM failed. No operation was performed);
  • Помилка: 0x800F081F. Не вдалося знайти вихідні файли. Вкажіть розташування файлів, необхідних для відновлення компонента, за допомогою параметра Джерело (Error 0x800f081f, The source files could not be found. Use the «Source» option to specify the location of the files that are required to restore the feature).

Ви можете вказати WIM або ESD файл з оригінальним настановним чином Windows, який потрібно використовувати як джерело для відновлення файлів компонентів системи. Припустимо, ви змонтували інсталяційний ISO образ Windows 10 в віртуальний привід E :. Для відновлення сховища компонентів з образу використовуйте одну з команд:

DISM / online / cleanup-image / restorehealth /source:E:\sources\install.wim
або:
DISM / online / cleanup-image / restorehealth /source:E:\sources\install.esd

Щоб заборонити використовувати центр оновлень Windows в Інтернеті, і виконувати сканування і відновлення образу Windows тільки з локального WIM / ESD файлу:

DISM / online / cleanup-image / restorehealth /source:E:\sources\install.wim / limitaccess
або:
DISM / online / cleanup-image / restorehealth /source:E:\sources\install.esd / limitaccess

dism / online / cleanup-image / restorehealth / limitaccess

Примітка. Для відновлення пошкоджених файлів в сховище компонентів з локального джерела версія і редакція Windows в образі повинна повністю збігатися з вашою.

Журнал сканування і відновлення системних файлів утиліти DISM можна знайти тут: C: \ Windows \ Logs \ CBS.log.

Після відновлення сховища компонентів ви можете запустити утиліту перевірки системних файлів sfc / scannow. Швидше за все вона успішно відновить пошкоджені файли (Програма захисту ресурсів Windows виявила пошкоджені файли й успішно їх відновила).

Відновлення пошкодженого сховища компонентів Windows 10 / Server 2016 за допомогою PowerShell

У версії PowerShell в Windows 10 і Windows Server 2016/2019 є аналоги розглянутих вище команд DISM. Для сканування сховища компонентів і виявлення місць пошкоджень в образі виконайте:

Repair-WindowsImage -Online -ScanHealth

Якщо помилок в сховище компонентів не виявлено, з'явиться повідомлення:

ImageHealth State: Healthy

Для запуску відновлення системних компонентів і файлів наберіть:

Repair-WindowsImage -Online -RestoreHealth

При відсутності доступу до інтернету ця команда може зависнути в процесі відновлення образу. Ви можете відновити системні компоненти з локальної копії образу Windows у вигляді WIM / ESD файлу, скопійованого з інсталяційного ISO образу Windows 10:

Repair-WindowsImage -Online -RestoreHealth -Source E: \ sources \ install.wim: 1

Де, 1 - індекс використовуваної у вас редакції Windows з WIM або ESD файлу (список редакцій Windows в WIM файлі можна вивести так: Get-WindowsImage -ImagePath "E: \ sources \ install.wim").

Відновлення сховища компонентів оффлайн якщо Windows не завантажується

Якщо Windows не завантажується коректно, ви можете виконати перевірку і виправлення системних файлів в оффлайн режимі.

  1. Для цього завантажити з установочного (завантажувального диска) і на екрані початку установки натисніть Shift + F10
  2. Щоб розібратися з буквами дисків, призначених в середовищі WinPE, виконайте команду diskpart -> list vol (В моєму прикладі диску, на якому встановлена ​​Windows Провіднику C: \, цю букву я буду використовувати в наступних командах);
  3. Перевіримо системні файли і виправимо пошкоджені файли командою: sfc / scannow / offbootdir = C: \ / offwindir = C: \ Windows
  4. Для виправлення сховища компонентів використовуйте наступну команду (як джерело для відновлення компонентів ми використовуємо WIM файл, що містить інсталяційний чином Windows 10, з якого ми завантажили комп'ютер):
    Dism / image: C: \ / Cleanup-Image / RestoreHealth /Source:D:\sources\install.wim
  5. Якщо на цільовому диску недостатньо місця, то для отримання тимчасових файлів нам знадобиться окремий диск достатнього розміру, наприклад F: \, на якому потрібно створити порожній каталог: mkdir f: \ scratch і запустити відновлення сховища компонентів командою:
    Dism / image: C: \ / Cleanup-Image / RestoreHealth /Source:D:\sources\install.wim / ScratchDir: F: \ scratch
Порада. Корисні параметри DISM, які повинен знати адміністратор:

  • DISM / Add-Package - установка MSU / CAB файлів оновлень, інтеграція оновлень в образ Windows;
  • DISM / Get-Drivers - отримання переліку встановлених драйверів;
  • DISM / Add-Driver - додавання драйверів в образ;
  • DISM / Add-Capability - установка компонентів і RSAT;
  • Dism.exe / StartComponentCleanup - очищення сховища компонентів і видалення старих версій компонентів (папки WinSxS);
  • Dism / set-edition - перехід з ознайомчою Windows на повну без переустановлення.