Восстановление системных файлов: команда sfc /scannow.

Признаюсь, с этой статьёй немного запоздал (лет эдак на дцать, не менее), однако часто в других статьях я отсылаю читателей в никуда или в «общеподготовительные» мануалы по работе с этой полезной системной утилитой. Между тем она является одним из главных и первоначальнейших инструментов не только диагностики состояния системы, но и исправления ошибок в Windows. С появлением Windows 10/8 настольной версии этот инструмент дополнился ещё одним (причём предварительным: если у вас, к примеру, Window 10 — начните именно со средства проверки DISM ) вариантом сравнения имеющихся системных файлов с шаблонными, но, так как обладатели Windows 7 этого инструмента лишены… Знакомьтесь, кто ещё не в курсе: утилита sfc /scannow она же SFC.exe.

Что такое sfc /scannow?

Практически — это программа, которая, как и многие из других системных располагается в папке

C:\Windows\System32

и является неотъемлемой частью механизма защиты ресурсов Windows, который охраняет реестровые ключи и отдельные параметры от поражения (равно как и критически важные системные файлы). Если только после запуска утилиты та обнаружит изменения в этих файлах или параметрах, она — утилита — приступит (по команде пользователю) к исправлению ситуации. Для этого сама Windows всегда держит кэшированную копию файлов в системной папке с одноимённым названием. Есть желание — взгляните:

C:\Windows\winsxs\Backup

System File Checker = Sfc.exe = sfc /scannow

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

cmd от имени администратора

В окне консоли пишем знакомую команду:

sfc /scannow

проверка файловой системы sfc /scannow

Утилита проверит нужное, в случае обнаружения несоответствия будет проведена подмена после перезагрузки.

Что sfc /scannow умеет?

Справка по утилите русифицирована, так что вам стоит лишь набрать:

sfc

справка по sfc scannow

Результаты проверки sfc /scannow

Результаты работы утилиты будут сопровождаться некоторыми сообщениями в зависимости от того, успешно ли прошло восстановление или в работе произошёл сбой. Но сразу запомните: не торопитесь паниковать в случае неудачных выводов утилиты. Запустите sfc.exe несколько раз и в разных режимах.

  • Для завершения восстановления системы требуется перезагрузка. Перезапустите систему Windows и выполните sfc ещё раз:

Для завершения восстановления системы требуется перезагрузка

Окно означает, что в текущем сеансе окно консоли можно закрыть: утилита запустится только после ПЕРЕЗАГРУЗКИ ( после ВЫКЛЮЧЕНИЯ компьютера ситуация может повториться). Причина сообщения ясна — файлы кэша в данную минуту обрабатываются системой («заняты» каким-то процессом/ами: Windows элементарно ждёт применения только что установленных обновлений).

  • защита ресурсов не обнаружила нарушений целостности

Проблема, которую вы пытаетесь разрешить, лежит, по-видимому, в иной плоскости.

  • Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила

Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила

Наиболее частое повреждение файлов — либо неправильная работа (а чаще удаление) сторонних программ в/из Windows, а также сбои в работе жёсткого диска (см. «Плохие секторы жёсткого диска«). И утилита частично эти проблема разрешила, подменив на исходные. Настоятельно рекомендую взглянуть на лог утилиты по адресу в консоли — там могут быть интересные детали для разрешения вероятных в последующем ошибок:

C:\Windows\Logs\CBS\CBS.log

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

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

Большинство пользователей подобное «заявление» ставит в тупик. Я могу предложить вам несколько вариантов действий:

Сразу проверяем готовность соответствующей службы. Набираем (в cmd иди строке Найти/Выполнить) команду на открытие консоли

services.msc

Ищем в списке служб Установщик модулей Windows. Тип запуска: Вручную.

Проверьте, на месте ли папки (и не пусты ли они) PendingDeletes и PendingRenames в директории

C:\Windows\WinSxS\Temp

папка temp в winsxs

Повторите операцию по запуску sfc /scannow, но уже в Безопасном режиме. Запуск Windows в щадящем режиме можно запланировать прямо сейчас из другой системной утилиты msconfig:
как попасть в безопасный режим

Если результат окажется тем же, возможно попробовать сдвинуть запуск утилиты восстановления ещё ближе к запуску Windows: на этот раз sfc /scannow может проверить файлы ещё до загрузки системы. Однако для этого вам потребуется загрузочный носитель с той копией Windows, которая у вас установлена:

восстановление системы из загрузочного диска

вставьте загрузочный диск/флешку

параметры восстановления системы

удостоверьтесь, что система на жёстком диске видна с флешки/дисковода

Обратите внимание на букву Локального диска (D) в столбце Папка: запомните её!

cmd в восстановлении системы

ищем консоль в параметрах восстановления

и вводим команду на офлайн проверку вашей Windows:

sfc /scannow /offbootdir=d:\ /offwindir=d:\windows

где d — имя локального диска на компьютере/ноутбуке. Обратите внимание: эта команда позволит вам проверять внешние носители с установленной Windows.

Читаем логи и проверяем подробности работы sfc

Путь расположения лог-файла sfc.exe вы уже знаете. Чтобы его не искать в терниях системы, по аналогии с официальной справкой по sfc.exe я предлагаю вам набрать такую команду в консоли от имени админа:

findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\справка.txt"

На Рабочем столе появится текстовый файл, в котором вы найдёте подробности того, с чем команда sfc /scannow столкнулась:

логи sfc

Большинство записей (а в «холостом» режиме работы утилиты) в логах должны выглядеть так:

как читать логи sfcSfc.exe традиционного проверяет файлы поблочно по 100 штук. Этих самых файлов немало, и потому строк в логах также много. Информация выводится по типу:

Дата   Время   Тип   Режим доступа   Подробности

А вот и проблема «…но не может восстановить некоторые из них«:

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

для увеличение изображения откройте его в новой вкладке

где самые частые содержания в строках такие:

  • beginning verifiyng … — проверка файлов в текущем блоке начата
  • cannot repaire member file… — не могу починить файл имя.расширение
  • file is missing — файл отсутствует
  • hash mismatch — хэш-код файла не соответствует системному («родному»)

  • this component was referenced by… — компонент изначально относился к… (на него ссылался…)

  • verifying 100 components — проверка 100 составляющих блока завершена успешно

  • repairing corrupted file — ремонт повреждённого файла

  • repair complete — ремонт закончен

Пробуем восстановить файл вручную.

Восстановление файлов из списка логов sfc вручную.

Напоминаю, что логи sfc содержат в себе только информацию о СИСТЕМНЫХ файлах: часто эта программа бесполезна против части подгружаемых со стороны библиотек DirectX, .Net и прочего. Исправит она и не все файлы для установленных программ, если такая беда случится. 

Но если логами sfc битый или пустой/отсутствующий файл зафиксирован, его можно исправить. Повторяю: если вы сидите в Windows 10, у вас есть более быстрый вариант. Тут же в cmd наберите:

dism /online /cleanup-image /restorehealth

В Windows 7 придётся попотеть. Сначала получите к нему доступ и права на работу с файлом:

takeown /f полный-путь-к-файлу/папке

и

icacls полный-путь-к-файлу/папке /GRANT ADMINISTRATORS:F

Например, система обнаружила повреждение файла System.Management.Automation.dll и не смогла его починить.

повреждённый файл в логах sfc

откройте в новой вкладке

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

cd\
dir имя-файла /s

поиск повреждённого файла по имени

Консоль, скорее всего, выдаст несколько вариантов (заметьте, что нередко в Windows папка таковой не является — это может быть всего лишь системный узел или вид «с нескольких ракурсов»). Так что, опираясь на логи, откиньте ненужные результаты. Если всё ещё не удаётся его вычленить, используйте повторную проверку каждого из «подозреваемых» с помощью той же sfc.exe в формате (смотрите справку):

sfc /verifyfile=полный-путь-к-файлу

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

  • взять у друга с такой же Windows (попросить на добропорядочном форуме)
  • скачать аккуратно из сети, не нарвавшись на бяку
  • забрать с установочного диска/флешки/образа (тогда проще уж просто запустить sfc.exe с загрузочного диска)

После того, как вы утвердились в выборе, замените повреждённый файл на обновлённый командой в cmd в формате:

copy полный-путь-к-хорошему-файлу полный-путь-к-плохому-файлу

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

Успехов

Запись опубликована в рубрике Настройки Windows. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

8 − три =