Для перевірки цілісності системних файлів і відновлення пошкоджених файлів (бібліотек) компонентів в 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 хвилин).
Якщо команда / 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
Журнал сканування і відновлення системних файлів утиліти 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
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 не завантажується коректно, ви можете виконати перевірку і виправлення системних файлів в оффлайн режимі.
- Для цього завантажити з установочного (завантажувального диска) і на екрані початку установки натисніть
Shift + F10
- Щоб розібратися з буквами дисків, призначених в середовищі WinPE, виконайте команду
diskpart
->list vol
(В моєму прикладі диску, на якому встановлена Windows Провіднику C: \, цю букву я буду використовувати в наступних командах); - Перевіримо системні файли і виправимо пошкоджені файли командою:
sfc / scannow / offbootdir = C: \ / offwindir = C: \ Windows
- Для виправлення сховища компонентів використовуйте наступну команду (як джерело для відновлення компонентів ми використовуємо WIM файл, що містить інсталяційний чином Windows 10, з якого ми завантажили комп'ютер):
Dism / image: C: \ / Cleanup-Image / RestoreHealth /Source:D:\sources\install.wim
- Якщо на цільовому диску недостатньо місця, то для отримання тимчасових файлів нам знадобиться окремий диск достатнього розміру, наприклад F: \, на якому потрібно створити порожній каталог:
mkdir f: \ scratch
і запустити відновлення сховища компонентів командою:Dism / image: C: \ / Cleanup-Image / RestoreHealth /Source:D:\sources\install.wim / ScratchDir: F: \ scratch
DISM / Add-Package
- установка MSU / CAB файлів оновлень, інтеграція оновлень в образ Windows;DISM / Get-Drivers
- отримання переліку встановлених драйверів;DISM / Add-Driver
- додавання драйверів в образ;DISM / Add-Capability
- установка компонентів і RSAT;Dism.exe / StartComponentCleanup
- очищення сховища компонентів і видалення старих версій компонентів (папки WinSxS);Dism / set-edition
- перехід з ознайомчою Windows на повну без переустановлення.