Проверка системных файлов Windows на целостность. SFC и DISM: Проверка и Восстановление системных файлов в Windows

Утилита sfc.exe проверяет целостность всех системных файлов, защищенных системой защиты файлов Windows (wfp ), в нее встроена возможность автоматической замены поврежденных версий корректными версиями Microsoft. Для запуска программы пользователь должен иметь права Администратора .

Sfc

Описание

При запуске sfc использует ряд флагов, самый используемый из которых это /scannow . sfc можно запустить на всех компьютерах под управлением Windows, а также в консоли восстановления Windows, но стоит учесть что все флаги поддерживаются во всех операционных системах. Подробнее в графе Совместимость.

Список параметров:
/?

Выводит список всех имеющихся флагов

/scannow

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

/verifyonly

Проверяет целостность всех защищенных системных файлов, но не восстанавливает их.

/scanfile=Путь_к_файлу

Сканирует целостность указанного файла (по абсолютному пути filePath ) и восстанавливает его если выявлены изменения. Пример абсолютного пути, когда вместо filePath будет c:\windows\system32\example.dll

/verifyfile=Путь_к_файлу

Сканирует целостность указанного файла (по абсолютному пути filePath ) но не и восстанавливает его. Пример абсолютного пути, когда вместо filePath будет c:\windows\system32\example.dll

/offwindir=буква_диска_с_Windows

Необходим чтобы вручную указать диск на который установлена Windows и на котором мы ищем изменение файлов.

/offbootdir=буква_диска_откуда_восстанавливать

Задает букву диска с которого берутся файлы для восстановления. Он используется совместно с /offwindir = в консоли восстановления. Пример использования в консоли: sfc /scannow /offbootdir=d:\ /offwindir=d:\windows . В указанном примере сканируются и ремонтируются файлы, указанные флагом offwindir с использованием оригинальных файлов Microsoft найденных в пути offbootdir .

/scanonce

Сканировать и восстанавливать файлы при следующей загрузке Windows

/scanboot

Сканировать и восстанавливать файлы при каждой загрузке Windows

/revert

Эта команда используется для отмены ранее выполненных команд. Например, если пользователь выполнил команду /scanboot , которая запускает сканирование при каждой загрузке Windows, то команда /revert прекратит этот процесс.

/purgecache

Удаление исходных файлов (по которым происходит восстановление) из папки кэша Windows. Нужно пользоваться этой командой с осторожностью, поскольку может привести к сбоям системы. Команда также запускает сканирование системы и заполняет папку кэша копиями текущих файлов системы.

/cachesize=x

Изменяет размер кэша, под потребности пользователя. Параметр x задает количество мегабайт.

Коды возврата

Возвращает 0 если операция выполнена успешно и 0 если с ошибками.

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

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

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

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

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

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

Совместимость

Утилита sfc совместима с операционными системами Windows Vista и выше.

Возможные проблемы

  1. sfc scannow не удается запустить службу восстановления – Проверьте чтобы была запущена служба Установщик модулей Windows . (Панель управления\Администрирование\Службы) и тип запуска стоит Вручную
  2. sfc scannow не может восстановить файлы – Попробуйте выполнить следующую команду

    Dism /Online /Cleanup-Image /RestoreHealth

    Она используется для восстановления поврежденных компонентов, после чего перезагрузите компьютер и попробуйте выполнить sfc /scannow еще раз.

    Второй вариант это заменить файлы, которые утилита не может восстановить самостоятельно либо с другого компьютера, либо с резервной копии и т.п.
    Для этого нужно получить список файлов, которые утилита не смогла восстановить вводим:

    findstr /c:”” %windir%\Logs\CBS\CBS.log >”%userprofile%\Desktop\sfc.txt”

    Эта команда создаст текстовый файл на Вашем рабочем столе sfc.txt в котором содержится подробный лог работы утилиты

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

Поэтому тема повествования будет звучать так: команда SFC scannow в Windows 7 и 10. Также рассмотрим вопрос, почему иногда она не может восстановить системные файлы. То есть, попросту говоря, отказывается работать.

Итак, что же это за команда такая и для чего она нужна? Так вот, SFC scannow является системной утилитой, которая служит для автоматической проверки и восстановления важных файлов операционной системы.

Использовать ее довольно легко, но иногда могут возникнуть различные нюансы. Поэтому давайте переходить к делу, чтобы во всем разобраться. Все дальнейшие действия будут показаны на примере Windows 10, хотя и в Win 7 все делается практически аналогично.

Затем вводим саму команду:

Запустится процесс сканирования системы, который может занять довольно продолжительное время. Так что теперь остается только ждать и надеяться, что данная команда сможет все исправить.

После окончания работы появится отчет, где будет сказано о реальном положении дел. Также представиться возможность ознакомится с файлом журнала и детально разобраться в важных деталях:

Но как видно на скриншоте выше, в нашем случае все прошло не очень гладко. Поврежденные файлы были обнаружены, но Windows 10 так и не смогла их восстановить.

А происходит так потому, что параметр SFC scannow не в силах восстановить те системные файлы, который используются в данный момент времени самой операционной системой. В общем, настоящий парадокс получается.

Но тем не менее выход из сложившейся ситуации есть. Нужно попробовать произвести вышеуказанные действия в среде восстановления Windows. Как в него войти на десятой версии системы очень подробно рассказано в

Ну а на семерке придется воспользоваться заранее подготовленным загрузочным диском и выставить его приоритетным в компьютера. Увы, но по-другому никак не получится.

Ну а мы продолжаем процесс лечения и восстановления файлов на примере Win 10. И сейчас нужно будет ввести небольшую серию команд. Первой будет вот такая:

Следующей функцией мы выведем общий список установленных на компьютере жестких дисков. Каждому из них уже присвоен личный номер, который нам понадобится на следующем шаге:

Теперь выбираем обнаруженный выше диск под номером ноль, поскольку он единственный в системе:

На этом этапе осталось только разобраться с винчестера, чтобы понять, какой из них является системным, то есть с установленной Windows:

После того как нужная информация получена, можно, так сказать, и ноги отсюда сделать. Для этого вводим следующую команду:

И вот, наконец-то, настал час истины. Теперь будем снова проверять системные файлы и в случае проблем пробовать их восстановить. Итак, начинаем процесс:

В этом выражении буква «C» указывает на логический раздел жесткого диска, на котором установлена операционная система. Также при вводе очень важно соблюдать правильность ввода, в частности, ставить проблемы там, где нужно.

Теперь остается надеяться на то, что после завершения процесса сканирования будет выведено сообщение «Защита ресурсов Windows не обнаружила нарушений целостности».

Что еще можно рассказать про команду SFC scannow? Например, вот такой параметр сможет в среде восстановления вывести на рабочий стол журнал с результатами работы:

А следующий метод позволит проверить и восстановить конкретно указанный файл. Например, в рабочей Windows данный параметр будет выглядеть так:

Где «kernel32.dll» представляет собой имя нужного файла. А все выражение является путем до каталога, где он располагается. Точно такая же команда в среде восстановления Windows 7 и 10 будет немножко отличаться:

Ну что же, друзья, теперь и вы знаете, почему иногда команда SFC scannow в Windows 7 и 10 не может восстановить системные файлы. Но в завершение стоит сказать, что есть еще одна похожая утилита, которую мы также .

Если у вас вдруг остались какие-то вопросы, смело задавайте их в комментариях к статье. А сейчас можете немножко расслабиться и посмотреть очень интересный видеоролик. Парни, вам это нужно смотреть обязательно.

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

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

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

Как проверить целостность файлов в Windows 10 с помощью SFC

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

Через командную строку в интерфейсе Windows

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


Если с системными файлами Windows нет никаких проблем, после проверки пользователь увидит сообщение, что «Защита ресурсов Windows не обнаружила нарушение целостности». В такой ситуации можно переходить к проверке файлов с помощью DISM.

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

Обратите внимание, если у вас имеются подозрения, что сбой в работе системы связан с определенным файлом, можно не выполнять полную проверку SFC. Достаточно ввести команду sfc /scanfile=”адрес до файла” , и он будет заменен мгновенно на оригинальную версию, если в него ранее вносились изменения или он работает с ошибкой.

Через среду восстановления

Чтобы провести проверку целостности файлов с помощью команды SFC через среду восстановления, потребуется выполнить следующие действия:

Нажмите в левом нижнем углу на кнопку «Пуск» и перейдите в «Параметры»:


diskpart list volume

После выполнения второй команды отобразится список доступных томов. Здесь требуется обратить внимание на диск, который зарезервирован системой и на системный раздел с операционной системой. Далее с ними потребуется производить манипуляции.

Продолжите вводить команды:

Exit sfc /scannow /offbootdir=C:\ /offwindir=E:\Windows

В последней команде требуется указать диски, которые были отмечены выше. То есть, в приведенном примере команды диск C является разделом с загрузчиком, а диск E – местом, где установлена операционная система Windows 10.

Внимание: Велика вероятность, что буквы дисков у вас будут отличаться от приведенных в примере, поэтому команда будет варьироваться.

  1. После ввода последней из четырех команд начнется сканирование целостности файлов операционной системы.

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

По окончанию проверки пользователь увидит информацию о том, что нарушения целостности не были обнаружены или были успешно устранены. После этого можно перейти ко второму способу проверки – при помощи инструмента DISM.

Как проверить целостность файлов в Windows 10 с помощь DISM

Как отмечалось выше, после проверки с помощью SFC рекомендуется приступить к анализу системы инструментом DISM. Он в ходе проверки исследует другие каталоги (и еще раз «пройдется» по файлам, которые были проверены SFC).

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

Dism /Online /Cleanup-Image /CheckHealth

При выполнении данной команды система проверяет сделанные диагностическими утилитами записи по обнаружению в системе измененных или проблемных файлов. Команда выполняется быстро, но при этом не проводится проверка, а все данные основываются на ранее записанной информации.

Dism /Online /Cleanup-Image /ScanHealth

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

Dism /Online /Cleanup-Image /RestoreHealth

Эта команда, в отличие от предыдущей, не только проверяет файлы, но и сразу их заменяет на целостные. На ее выполнение также потребуется от нескольких минут до нескольких часов.

Важно: Обратите внимание, что последние две команды, которые запускают проверку целостности файлов Windows 10, могут «зависнуть» в процессе выполнения на определенном проценте (чаще всего около 20). Ни в коем случае не следует в этот момент перезагружать систему, поскольку данная ситуация является типичной, и проценты продолжат «капать» через некоторое время.

Или sfc.exe представляет собой утилиту в Microsoft Windows и находится в папке C: WindowsSystem32. Эта утилита позволяет пользователям сканировать и восстанавливать коррумпированные файлы системы Windows .

В Windows 7 и Vista , программа проверки системных файлов интегрирована с Windows Resource Protection , которая защищает ключи реестра и папок, а также критически важных системных файлов. Если какие-либо изменения обнаруживаются в защищенной файловой системе, измененный файл восстанавливается из сохраненной копии находящейся в папке Windows .
Так, если в любой момент времени, если вы обнаружите, что вы взломали некоторые системные файлы или возможно применили некоторые хитрости или может быть заменили системные файлы, во время настройки Windows , и теперь вы обнаружите, что ваша ОС Windows не работает должным образом, вы можете рассмотреть работу эту утилиты для восстановления системы.
Для запуска проверки системных файлов в Windows 7 или Vista ,в поле Начать поиск введите тип CMD . В результате, чего появляется окно командной строки, щелкните правой кнопкой на CMD


В окне командной строки откроется тип SFC / Scannow – нажмите Enter. Утилита SFC будет работать некоторое время, и если будут обнаружены повреждения, заменит их на сохранённую.В случае если вы не в состоянии начать проверку системных файлов, и вы получите сообщение ” Windows Resource Protection - Windows не удаётся запустить услуги по ремонту ” , вы можете проверить, была ли включена в вашей ОС Windows Installer Модули службы. Для этого введите services.msc в строке поиска и нажмите Enter. Статус этой службы должен быть установлен в руководстве.Кроме того, вы также можете скачать очень полезную бесплатную утилиту FixWin и нажать на кнопку проверка системных файлов . Это позволит запустить sfc.exe.
Еще несколько переключателей sfc:
Однократное сканирование при следующей загрузке: sfc/scanonce
Сканирование при каждой загрузке: sfc/scanboot
Чистка кэша файлов: sfc/purgecache
Вернуться по умолчанию: sfc/revert
Вы также можете использовать программу sfc.exe для помощи в устранении аварий, которые происходят в части пользовательского режима Windows 7 и Vista . Эти сбои могут быть связаны с отсутствующими или поврежденными файлами операционной системы. Для этого вам нужно иметь доступ к лог-файлам.
Как просматривать файл журнала.
Программа sfc.exe пишет детали каждой проверки эксплуатации и ремонта каждой операции в cbs.log файл. Каждый раз после запуска программы sfc.exe в этом файле будет записан тэг . Файл cbs.log находится в папке % WINDIR%logsCBS .Вы можете искать теги , которые помогут найти записи программы sfc.exe . Для выполнения этого вида поиска и направления результатов в текстовый файл, выполните следующие действия:
Нажмите кнопку Пуск , введите CMD в поле Начать поиск , щелкните правой кнопкой мыши на CMD в списке Программы и выберите Запуск от имени администратора.
Введите следующую команду и нажмите Enter:
Findstr / с: ““% WINDIR% Logs CBS cbs.log> sfcdetails.txt
Файл Sfcdetails.txt содержит записи, которые регистрируются каждый раз, когда программа sfc.exe работает на компьютере.
Как интерпретировать записи файла журнала:
Программа sfc.exe проверяет файлы в группе по 100. Таким образом, там будет много групп записей программы sfc.exe . Каждая запись имеет следующий формат: дата/время/entry_type . Для более подробной информации о том, как интерпретировать, посетите

Утилита SFC.EXE (S ystem F iles C hecker) существует во всех версиях Windows, начиная с Windows 2000, и предназначена для проверки состояния и восстановления системных файлов. Механизмы защиты важных файлов в разных версиях Windows реализованы по-разному, но все они учитывают тот факт, что какие-либо системные файлы (обычно исполняемые файлы.exe, файлы библиотек.dll, файлы драйверов) могут быть изменены сторонним программным обеспечением, и должен быть механизм, позволяющий проверить их целостность и отменить обнаруженные изменения.

Формат командной строки:

SFC

Параметры командной строки:

/SCANNOW - Проверка целостности всех защищенных системных файлов и восстановление, по возможности, проблемных файлов.

/VERIFYONLY - Проверка целостности всех защищенных системных файлов. Восстановление файлов не выполняется.

/SCANFILE - Проверка целостности указанного файла и его восстановление при обнаружении проблем. В параметре файл следует указать полный путь

/VERIFYFILE - Проверка целостности файла, полный путь к которому указан в параметре файл . Восстановление файлов не выполняется.

/OFFBOOTDIR - Расположение автономного каталога загрузки для автономного восстановления

/OFFWINDIR - Расположение автономного каталога Windows для автономного восстановления

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

sfc /? - отобразить подсказку по использованию.

sfc /scannow - выполнить проверку целостности системных файлов и восстановить поврежденные. Результаты работы записываются в журнал утилиты \Windows\Logs\CBS\CBS.log.

sfc /verifyonly - выполнить только сканирование системных файлов без исправления.

sfc /VERIFYFILE=c:\windows\system32\cmd.exe - сканировать только файл cmd.exe

sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows - сканировать только файл kernel32.dll из состава операционной системы, установленной на логическом диске D: . При выполнении сканирования файлов автономной Windows, ведение файла журнала в настоящее время не поддерживается.

В процессе выполнения программы, на экране отображается информация о ходе сканирования и результаты работы. Пример вывода при использовании сканирования с исправлением командой sfc /scannow :

Начато сканирование системы. Этот процесс может занять некоторое время.

Начало стадии проверки при сканировании системы.
Проверка 100% завершена.

Программа защиты ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Подробные сведения см. в файле CBS.Log, который находится по следующему пути: windir\Logs\CBS\CBS.log. Например, C:\Windows\Logs\CBS\CBS.log. Обратите внимание, что ведение журнала в настоящее время не поддерживается для автономного обслуживания.

Начиная с Windows Vista, в качестве средства по обслуживанию компонент операционной системы используется Component-Based Servicing (CBS) - специальный набор программных средств для обеспечения ее целостности. CBS является частью Component Servicing Infrastructure (CSI) , обеспечивающей необходимые изменения текущего состояния Windows, например, при обновлении системы (Windows Update), установке или удалении программ и компонент, обновлении драйверов устройств и т.п. Фактически, CBS предоставляет программный интерфейс (API) инсталляторам для корректного изменения текущего состояния системы. Система обслуживания ОС Windows фиксирует множество событий, связанных с отслеживанием этого состояния, в специальном файле C:\Windows\Logs\CBS\CBS.log

Файл журнала CBS.log, кроме всего прочего, содержит и подробные сведения о ходе выполнения сканирования утилиты sfc.exe и его результатах. Для каждого сканируемого файла записывается дата, время и дополнительные сведения о проверке. Через каждые 100 проверок отображается итоговая информация, сопровождаемая тегом , что позволяет выделить из довольно объемного текста только те записи, которые содержат данный признак, с использованием команды поиска строки в текстовом файле findstr :

findstr /c:"" %windir%\logs\cbs\cbs.log >sfcdetails.txt - найти строки, содержащие и вывести их в файл sfcdetails.txt текущего каталога.

Пример содержимого файла журнала, содержащего только строки с тегом :

00004b78 Verifying 100 (0x0000000000000064) components
00004b79 Beginning Verify and Repair transaction
00004be0 Verify complete
00004be1 Verifying 100 (0x0000000000000064) components
00004be2 Beginning Verify and Repair transaction
00004c30 Repairing corrupted file "\??\C:\WINDOWS\System32\cmd.exe" from store
00004c5a Verify complete
. . . .
00005594 Committing transaction
00005599 Verify and Repair Transaction completed. All files and registry keys listed
in this transaction have been successfully repaired

В данном примере, проверено 100 файлов, в которых не обнаружено никаких отклонений, а в следующей порции был обнаружен и успешно исправлен файл msprivs.dll.mui . Последние 2 строки сообщают о завершении работы, и о том, что все файлы и ключи реестра были успешно восстановлены.

В тех случаях, когда не удалось восстановить поврежденный файл, в журнале будет присутствовать строка, содержащая:

Cannot repair member file Имя Файла Детальная информация о файле

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

Для поиска информации в тексте журналов cbs.log удобно фильтровать записи по характерным признакам событий, зафиксированных в журнале:

findstr /c:"Cannot repair" %windir%\logs\cbs\cbs.log >sfcnotrepair.txt sfcnotrepair.txt только те строки журнала cbs.log , которые содержат строку Cannot repair , т.е. на выходе мы получим перечень системных файлов, которые не удалось восстановить.

findstr /c:"succsessfylly repaired" %windir%\logs\cbs\cbs.log >sfcnotrepair.txt - записывать в текстовый файл sfcnotrepair.txt только те строки журнала cbs.log , которые содержат строку succsessfylly repaired , т.е. на выходе мы получим перечень системных файлов, которые удалось восстановить.

В каталоге \Windows\Logs\CBS\ кроме текущего файла журнала cbs.log могут храниться устаревшие копии журналов в виде сжатых файлов с именем CbsPersist_ГГГГММДДnnnnnn.cab , которые, при необходимости можно распаковать для дальнейшего углубленного анализа.

В среде Windows 8-10 для восстановления системных компонент Windows, возможно использование утилиты Dism.exe , поддерживающей (чего не было в Windows Vista/Windows 7) параметр RestoreHealth :

dism /Online /Cleanup-Image /RestoreHealth - для восстановления системных файлов текущей ОС Windows.

Для Windows 7 параметр /RestoreHealth неприменим и функции восстановления объединены с функциями сканирования, задаваемыми параметром /ScanHealth :

dism /Online /Cleanup-Image /ScanHealth - для восстановления системных файлов текущей ОС Windows 7.