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

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

SFC в среде Windows

Для выполнения подобной проверки в Windows достаточно запустить командную строку с правами администратора и выполнить:

Sfc /scannow

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

Таблица 1 - Синтаксис утилиты sfc.exe

SFC

/SCANNOW Проверка целостности всех защищенных системных файлов и восстановление, по возможности, проблемных файлов.
/VERIFYONLY Проверка целостности всех защищенных системных файлов. Восстановление файлов не выполняется.
/SCANFILE Проверка целостности указанного файла и его восстановление при обнаружении проблем. В параметре <файл> следует указать полный путь
/VERIFYFILE Проверка целостности файла, полный путь к которому указан в параметре <файл>. Восстановление файлов не выполняется.
/OFFBOOTDIR Расположение автономного каталога загрузки для автономного восстановления
/OFFWINDIR Расположение автономного каталога Windows для автономного восстановления
например:
sfc /SCANNOW
sfc /VERIFYFILE=c:\windows\system32\kernel32.dll
sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows
sfc /VERIFYONLY


SFC в среде Windows RE

Взяться за написание статьи подвигло непонятное поведение утилиты sfc. exe в среде Windows RE при загрузке с установочного диска или диска восстановления, а именно предложение перезагрузить систему и выполнить проверку еще раз.

Рисунок 1 - Запуск утилиты в среде восстановления без ключей и требование перезагрузки

Подобное поведение имеет вполне логичное объяснение: для среды Windows RE раздел диска, с находящейся на ней операционной системой, является автономным каталогом. Следовательно, запуск утилиты с ключами /OFFBOOTDIR и /OFFWINDIR обязателен. Дальше выясним значения этих ключей.

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

Рисунок 2 - Раздел с системой в проводнике Windows

Рисунок 3 - Раздел с системой в оснастке "Управление дисками"

Вадим Стеркин предложил замечательный способ определения букв разделов в среде восстановления . Есть и другой - воспользоваться утилитой DISKPART . Загрузитесь в среду восстановления с установочного диска Windows, войдите в командную строку и выполните последовательно:

DISKPART List disk Sel disk 0 Detail disk

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

Поэтому тема повествования будет звучать так: команда 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 не может восстановить системные файлы. Но в завершение стоит сказать, что есть еще одна похожая утилита, которую мы также .

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

При неполадках в работе компьютера не лишним решением будет произвести проверку ОС на предмет целостности файлов системы. Именно повреждение или удаление данных объектов часто служит причиной некорректной работы ПК. Посмотрим, как можно выполнить указанную операцию в Виндовс 7.

Если вы замечаете какие-то ошибки при работе компьютера или его некорректное поведение, например, периодическое появление синего экрана смерти, то, прежде всего, необходимо . Если данная проверка никаких неисправностей не обнаружила, то в этом случае следует прибегнуть к сканированию системы на предмет целостности файлов системы, о котором мы подробно поговорим ниже. Данную операцию можно выполнить как воспользовавшись возможностями стороннего ПО, так и применив запуск внедренной утилиты Виндовс 7 «SFC» через «Командную строку» . Следует, заметить, что даже сторонние программы используются только для того, чтобы активировать «SFC» .

Способ 1: Windows Repair

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


Подробнее о работе данной утилиты мы поговорим при рассмотрении Способа 3 , так как её можно запустить также методом использования внедренных Microsoft инструментов операционной системы.

Способ 2: Glary Utilities

Следующей комплексной программой для оптимизации работы компьютера, с помощью которой можно проверить целостность файлов системы, является . Использование данного приложения имеет одно важное преимущество перед предыдущим способом. Оно заключается в том, что Глори Утилитес, в отличие от Windows Repair, имеет русскоязычный интерфейс, что значительно облегчает выполнение задачи отечественным пользователям.


Более подробная информация о работе «SFC» представлена при рассмотрении следующего метода.

Способ 3: «Командная строка»

Активировать «SFC» для сканирования на предмет повреждения файлов системы Виндовс, можно используя исключительно средства ОС, а конкретно «Командную строку» .


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

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

Если вам необходимо проверить конкретный файл на предмет повреждения, то следует ввести команду, соответствующую следующему шаблону:

sfc /scanfile=адрес_файла

Также особая команда существует для проверки операционной системы, расположенной на другом жестком диске, то есть, не той ОС, в которой вы работаете в данный момент. Её шаблон выглядит следующим образом:

sfc /scannow /offwindir=адрес_каталога_с_Виндовс

Проблема с запуском «SFC»

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

Самой частой причиной данной проблемы является отключение системной службы «Установщик модулей Windows» . Чтобы иметь возможность просканировать компьютер инструментом «SFC» , её следует обязательно включить.

  1. Щелкайте «Пуск» , переходите в «Панель управления» .
  2. Заходите в «Система и безопасность» .
  3. Теперь жмите «Администрирование» .
  4. Появится окошко со списком различных системных средств. Жмите «Службы» , чтобы произвести переход в «Диспетчер служб» .
  5. Запускается окошко с перечнем системных служб. Тут нужно отыскать наименование «Установщик модулей Windows» . Для облегчения поиска жмите по названию колонки «Имя» . Элементы построятся согласно алфавиту. Обнаружив нужный объект, проверьте, какое значение стоит у него в поле «Тип запуска» . Если там надпись «Отключена» , то следует произвести включение службы.
  6. Кликните ПКМ по наименованию указанной службы и в списке выберите «Свойства» .
  7. Открывается оболочка свойств службы. В разделе «Общие» щелкните по области «Тип запуска» , где в данный момент установлено значение «Отключена» .
  8. Открывается список. Тут следует выбрать значение «Вручную» .
  9. После того, как необходимое значение установлено, щелкайте «Применить» и «OK» .
  10. В «Диспетчере служб» в колонке «Тип запуска» в строке нужного нам элемента установлено значение «Вручную» . Это означает, что теперь можно запускать «SFC» через командную строку.

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

Утилита 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.

Средство проверки системных файлов (System File Checker), встроенное в Windows, умеет проверять системные файлы на наличие повреждений и любых других изменений. Если файл был изменен, утилита автоматически заменит его правильной версией.

Когда следует использовать эти команды

Эти команды пригодятся при диагностике неисправной операционной системы Windows. Если система выдает синий экран, сбоят приложения или не работают какие-то системные функции, может помочь команда SFC. Даже если после выполнения команды SFC ничего не будет исправлено, это даст возможность убедиться, что системные файлы не повреждены и можно продолжать диагностику другими способами.

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

Исправление системных файлов командой SFC

Команду SFC следует выполнять от имени администратора. Чтобы это сделать, в Windows 10 или 8.1 нажмите правой кнопкой мыши на значке «Пуск» (Start) и выберите опцию «Командная строка (администратор)» (Command Prompt (Admin)). Кроме того, во всех версиях Windows можно выполнить поиск в меню «Пуск»/на начальном экране по словам «командная строка», нажать на нужной ссылке правой кнопкой мыши и выбрать «Запуск от имени администратора» (Run as Administrator).

Для полной проверки системы введите в окне командной строки следующую команду и нажмите :

Не закрывайте окно, пока не завершится выполнение команды. Процесс может оказаться довольно продолжительным. Если все в порядке, по итогам проверки появится сообщение «Защита ресурсов Windows не обнаружила нарушений целостности» (Windows Resource Protection did not find any integrity violations).

Если появляется сообщение «Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них» (Windows Resource Protection found corrupt files but was unable to fix some of them), для начала попытайтесь загрузить систему в безопасном режиме. В Windows 10, 8.1 или 8 для этого зажмите клавишу при выборе опции «Перезагрузка» (Restart) в меню выключения, чтобы попасть на экран выбора дополнительных параметров загрузки. В Windows 7 и более ранних версиях перезагрузите компьютер и в процессе запуска зажмите клавишу . Загрузившись в безопасном режиме, вновь выполните команду sfc /scannow.

Исправление неполадок SFC командой DISM

В Windows 10, 8.1 и 8 исправить повреждение хранилища компонентов, препятствующее нормальной работе SFC, можно с помощью средства Deployment Image & Servicing Management (DSIM).

Для запуска этого средства откройте окно командной строки от имени администратора, введите указанную ниже команду и нажмите . DISM проверит хранилище компонентов Windows на наличие повреждений и автоматически устранит любые обнаруженные неполадки.

DISM /Online /Cleanup-Image /RestoreHealth

Не закрывайте окно командной строки до завершения процесса. Проверка может занять до 10 минут. Если индикатор прогресса долго держится на 20% – не волнуйтесь, это нормально.

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

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

Восстановление системы или возврат в исходное состояние

Если проблемы сохраняются и исправить их с помощью этих инструментов не удается, можно принять более радикальные меры. Средство восстановления системы (System Restore) позволяет вернуть Windows к более раннему состоянию, что позволит решить проблему, если в том состоянии операционная система была еще исправна.

Можно также вернуть Windows к заводскому состоянию или переустановить. В Windows 10, 8.1 и 8 можно использовать функцию восстановления компьютера (), которая позволяет вернуть Windows к исходному состоянию. После этого придется переустановить все программы, но пользовательские файлы не пострадают. В Windows 7 и более ранних версиях следует использовать раздел восстановления, созданный производителем компьютера, или просто переустанавливать Windows с нуля.

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

У описанных выше команд есть и другие возможности. Например, с помощью SFC можно проверять и исправлять отдельные системные файлы. А с помощью DISM можно выполнить быструю проверку системы без исправления либо указать утилите на файл WIM или ESD, содержащий системные файлы Windows.

Материалы