Команды DISM и SFC: проверка и восстановление системного образа Windows 10 и 11


В данном выпуске я покажу вам как проверить целостность системных файлов Windows 10, и в случае их повреждения, покажу как восстановить эти файлы с помощью команд SFC и DISM.
От ошибок в операционной системе Windows 10 не застрахован ни один пользователь. Они могут возникнуть по причине его целенаправленного или случайного вмешательства в работу ОС, а также по вине сторонних приложений. Если операционная система начинает жаловаться на отсутствие файлов, ошибки реестра или невозможность прочтения элементов из папки Windows, потребуется провести проверку целостности ее компонентов.

В операционной системе Windows 10 предусмотрены 2 метода анализа целостности файлов – через инструменты SFC.exe и DISM.exe. Команды не заменяют друг друга, а дополняют, проверяя различные библиотеки системы на целостность файлов. Именно поэтому рекомендуется выполнить не одну из них, а обе. Инструменты позволят проверить целостность файлов Windows 10 и заменить поврежденные или измененные на оригинальные элементы.

Обратите внимание, что, если ранее Вы или Администратор компьютера специально вносили изменения в системные файлы операционной системы, они будут отменены. Инструменты Windows заменят измененные элементы оригинальными, даже если проблема в работе компьютера или приложения не вызвана их действиями.

SFC /scannow: восстановление системных файлов Windows

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

Утилита SFC записывает все свои действия в лог-файл windir%\logs\cbs\cbs.log . Для всех записей, оставленных SFC в файле CBS.log проставлен тег [SR]. Чтобы выбрать из лога только записи, относящиеся к SFC, выполните команду: findstr /c:»[SR]» %windir%\Logs\CBS\CBS.log >»%userprofile%\Desktop\sfc.txt»

Если команда sfc /scannow возвращает ошибку “ Программа защиты ресурсов Windows обнаружила повреждённые файлы, но не может восстановить некоторые из них / Windows Resource Protection found corrupt files but was unable to fix some of them ”, скорее всего утилита не смогла получить необходимые файла из хранилища компонентов (образа) Windows.

В этом случае вам нужно попробовать восстановить хранилище компонентов вашего образа Windows с помощью DISM.

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

Исследование целостности системы и исправление ее элементов с использованием SFC

Команда сканирования целостности ОС sfc /scannow популярна среди опытных пользователей. Она автоматически исследует и устраняет дефекты составляющих ОС.
Функционирование SFC осуществляется от имени администратора, через командную строку, открывающуюся правым кликом мыши по меню «Пуск». Далее вводится sfc /scannow и нажимается «Enter».

Эти действия начинают проверку ОС, в результате которой выявленные повреждения исправляются. При отсутствии ошибок, пользователь видит послание «Защита ресурсов Windows не обнаружила нарушений целостности». Иной аспект данного исследования — неустранимые повреждения. Им будет посвящена часть продолжения этой статьи.

Команда sfc /scanfile=»путь_к_файлу» дает возможность проверить наличие ошибок в определенном системном компоненте.

Недостаток программного средства заключается в том, что оно не устраняет дефекты элементов ОС, используемых во время сканирования. Проблема решается запуском SFC через командную строку в среде восстановления ОС. Этот способ достаточно эффективен, и подразумевает выполнение нескольких простых операций.

Проверка целостности хранилища компонентов Windows с помощью DISM

Утилита DISM (Deployment Image Servicing and Management) доступна во всех версиях Windows, начиная с Vista.

Для сканирования образа Windows на наличие ошибок и их исправления используется параметр DISM /Cleanup-image. Команды DISM нужно запускать из командной строки, с правами администратора.

Чтобы проверить наличие признака повреждения хранилища компонентов в образе Windows (флаг CBS), выполните команду (не применимо к Windows 7/Server 2008R2):

DISM /Online /Cleanup-Image /CheckHealth

Эта команда не выполняет полное сканирование хранилища компонентов. Проверяются лишь записанные ранее маркеры повреждений и события в журнале Windows. Изменения в образ не вносятся. Команда проверит, не помечен ли ваш образ Windows как поврежденный и возможно ли исправить его.

В этом примере команда вернула, что с образом все хорошо:

No component store corruption detected. The operation completed successfully.

Чтобы выполнить полное сканирование хранилища компонентов на наличие повреждений в хранилище компонентов Windows, запустите команду:

DISM /Online /Cleanup-Image /ScanHealth

Команда проверки образа Windows может выполняться довольно долго (от 10 до 30 минут). И вернет один из трех результатов:

  • No component store corruption detected – DISM не обнаружил повреждения в хранилище компонентов;
  • The component store is repairable – DISM обнаружил ошибки в хранилище компонентов и может исправить их;
  • The component store is not repairable – DISM не может исправить хранилище компонентов Windows (попробуйте использовать более новую версию DISM или вам придется восстанавливать образ Windows из резервной копии, сбрасывать или полностью переустанавливать вашу копию Windows.

В Windows 7 и Windows Server 2008 R2 для использования параметра DISM /ScanHealth нужно установить отдельное обновление KB2966583. Иначе при запуске DISM будет появляться “ Ошибка 87. Параметр ScanHealth не распознан в этом контексте ”.

Команда DISM /ScanHealth может вернуть ошибки:

  • Ошибка: 1726. Сбой при удалённом вызове процедуры;
  • Ошибка: 1910. Не найден указанный источник экспорта объекта.

Это однозначно говорит о том, что ваш образ Windows поврежден и его нужно восстановить.

Восстановление образа Windows с помощью DISM /RestoreHealth

Чтобы исправить повреждения в хранилище компонентов образа Windows нужно использовать опцию RestoreHealth команды DISM. Эта опция позволит исправить найденные в образе ошибки, автоматически скачать и заменить файлы повреждённых или отсутствующих компонентов эталонными версиями файлов из центра обновлений Windows (на компьютере должен быть доступ в Интернет). Выполните команду:

DISM /Online /Cleanup-Image /RestoreHealth

В Windows 7/2008 R2 эта команда выглядит по другому: DISM.exe /Online /Cleanup-Image /ScanHealth

Процесс сканирования и восстановления компонентов может быть довольно длительным (30 минут или более). DISM автоматически загрузит недостающие или поврежденные файлы образа с серверов Windows Update.

Восстановление выполнено успешно. Операция успешно завершена. The restore operation completed successfully.

DISM /Source: восстановление образа Windows с установочного диска

Если на компьютере (сервере) отсутствует доступ в Интернет или отключена/повреждена служба Windows Update (как восстановить клиент 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).

  • Установочный диск/флешка/iso образ Windows
  • Смонтированный файл wim
  • Папка \sources\SxS с установочного диска
  • Файл install.wim с установочным образом Windows
  • Вы можете указать WIM или ESD файл с оригинальным установочным образом Windows, который нужно использовать в качестве источника для восстановления файлов системы. Предположим, вы смонтировали установочный ISO образ Windows 11 в виртуальный привод D:.

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

    С помощью следующей PowerShell команды проверьте, какая версия Windows установлена на вашем компьютере:

    Get-ComputerInfo |select WindowsProductName,WindowsEditionId,WindowsVersion, OSDisplayVersion

    Выведите список доступных версий Windows в установочном образе:

    Get-WindowsImage -ImagePath «D:\sources\install.wim»

    В нашем случае образ Windows 11 Pro в образе install.wim имеет ImageIndex = 6 .

    Для восстановления хранилища компонентов из локального WIM/ESD файла с блокированием доступа в интернет, выполните следующую команду (не забудьте указать ваш индекс версии Windows в файле):

    DISM /online /cleanup-image /restorehealth /source:WIM:D:\sources\install.wim:6 /limitaccess Или: DISM /online /cleanup-image /restorehealth /source:ESD:D:\sources\install.esd:6 /limitaccess

    Если при запуске появляется

    • Ошибка Error: 50: DISM does not support servicing Windows PE with the /Online option, значит ваша DISM считает, что вы используете WinPE образWindows. Чтобы исправить это, удалите ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT.
    • Ошибка DISM Error 87:проверьте правильно написания команды, убедитесь что вы используете версию DISM для вашей версии Windows (обычно бывает при загрузке через WinPE/WinRE).

    Утилита DISM пишет подробный журнал сканирования и восстановления системных файлов в файл C:\Windows\Logs\DISM\dism.log .

    После восстановления хранилища компонентов вы можете запустить утилиту проверки системных файлов sfc /scannow . Скорее всего она успешно восстановит поврежденные файлы:

    Программа защиты ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Windows Resource Protection found corrupt files and successfully repaired them.

    Если все системные файлы целы, появится сообщение:

    Windows Resource Protection did not find any integrity violations

Примеры использования

Чтобы немедленно просканировать и восстановить повреждённые системные файлы:

sfc /scannow

Чтобы проверить целостность файла без его исправления:

sfc /verifyfile=c:\windows\system32\example.dll

Проверить файл example.dll в консоли восстановления системы с установочного F диска Windows:

sfc /scanfile=d:\windows\system32\example.dll /offbootdir=f:\ /offwindir=d:\windows

Восстановление образа Windows с помощью PowerShell

В версии PowerShell в Windows 10/11 и Windows Server 2022/2019 есть аналоги рассмотренных выше команд DISM. Для сканирования хранилища компонентов и поиска повреждений в образе выполните:

Repair-WindowsImage -Online –ScanHealth

Если ошибок в хранилище компонентов не обнаружено, появится сообщение:

ImageHealth State: Healthy

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

Repair-WindowsImage -Online -RestoreHealth

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

Repair-WindowsImage -Online -RestoreHealth -Source D:\sources\install.wim:5 –LimitAccess

DISM: восстановление поврежденного хранилища компонентов, если Windows не загружается

Если Windows не загружается корректно, вы можете выполнить проверку и исправление системных файлов в оффлайн режиме.

Если Windows не загружается после установки обновлений, сначала попробуйте удалить последние патчи.

  1. Для этого загрузите компьютер с установочного образа Windows (проще всего создать загрузочную USB флешку с Windows 10/11 с помощью Media Creation Tool) и на экране начала установки нажмите 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:WIM:D:\sources\install.wim:6
  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 /Export-Driver – экспорт установленных драйверов Windows;
  • DISM /Add-Capability – установка дополнительных компонентов Windows через Features on Demand (например, RSAT, сервер OpenSSH или ssh клиент Windows;
  • DISM /Enable-Features и /Disable-Features – включение и отключение компонентов Windows (например, протокола SMBv1),
  • DISM /online /Cleanup-Image /StartComponentCleanup – очистка хранилища компонентов и удаление старых версий компонентов (папки WinSxS);
  • DISM /set-edition – конвертирование ознакомительной редакции Windows на полную без переустановки.
  • Исследование целостности с использованием SFC в среде восстановления ОС

    Не отнимает много времени, и не предполагает специальных навыков. Запуск в среде восстановления ОС выполняется несколькими способами:

    1. Нужно войти в «Параметры» и поочередно выбрать «Обновление и безопасность», «Восстановление», «Особые варианты загрузки» и «Перезагрузить сейчас». Более простой метод: в нижней правой части интерфейса входа в ОС нажимается ярлычок «вкл.», после чего, удерживая «Shift», необходимо кликнуть «Перезагрузка».
    2. Другой вариант — загрузка с предварительно подготовленного диска восстановления ОС.
    3. Еще одна альтернатива — электронный носитель с дистрибутивом ОС. В программе установки, после выбора языка, в левой нижней части выбирается «Восстановление системы».

    По окончании, необходимо войти в «Поиск и устранение неисправностей», выбрать «Дополнительные параметры» и нажать «Командная строка» (использование первого из представленных ранее способов подразумевает ввод пароля администратора системы). Далее последовательно применяется следующее:

    • diskpart
    • list volume

    По итогам запуска указанных команд пользователь видит перечень томов. Рекомендуется запомнить их обозначения, соответствующие диску «Зарезервировано системой» и разделу с ОС, так как иногда они отличаются от тех, что есть в проводнике.

    Далее вводятся другие команды:

    exit

    sfc /scannow /offbootdir=F:\ /offwindir=C:\Windows (где F — указанный ранее диск «Зарезервировано системой», а C:\Windows — путь к папке ОС).

    Описанные действия инициируют глубокое исследование целостности системы, в течение которого команда SFC исправляет все поврежденные компоненты, без исключения. Изучение может занять много времени. Индикатор подчеркивания, мерцая, показывает, что система продолжает работу. По окончании командная строка закрывается, а ОС перезагружается в стандартном режиме.

    Рейтинг
    ( 1 оценка, среднее 5 из 5 )
    Понравилась статья? Поделиться с друзьями:
    Для любых предложений по сайту: [email protected]