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

ошибки в 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 есть маленькие хитрости и скрытые нюансы. Любому из тех, кто прибегает к возможностям этого инструмента, следуют помнить, что если sfc не справилась сразу, не пренебрегите запустить её повторно. Но на этот раз отключите режим Быстрой загрузки. Оптимально количество попыток – 3. Только после трёх неудачных следует приступать к остальным средствам.

Ошибка утилиты Sfc.exe: Для завершения восстановления системы требуется перезагрузка…

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

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

sfc

справка по sfc scannow

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

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

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

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

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

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

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

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

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

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

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

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

findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\"Desktop"\sfc.txt"
  1. Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. При этом система отправляет вас в лог программы за подробностями. Речь идёт, как правило, о повреждении хранилища WinSxS. Реже, но также встречается ещё более категорическое 
  2. Защита ресурсов Windows не может выполнить запрошенную операцию.

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

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

  • Иногда камнем преткновения является аудиослужба Windows, причём в Windows 10 это сплошь и рядом. Откройте консоль cmd от имени администратора и введите две последовательные команды:
sc config trustedinstaller start=auto
net start trustedinstaller
  • Сразу проверяем готовность соответствующей службы. Набираем (в строке Найти/Выполнить) команду на открытие консоли
services.msc

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

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

C:\Windows\WinSxS\Temp

папка temp в winsxs

Если результат окажется тем же, возможно попробовать сдвинуть запуск утилиты восстановления ещё ближе к запуску 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 Администраторы:F

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

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

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

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

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

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

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

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

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

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

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

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

Как добавить SFC /SCANNOW в контекстное меню проводника?

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

запустить sfc из контекстного меню

Скачать архив с настройками SFC для контекстного меню

Успехов

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

  1. 1. Почему окно обработчики команд появляется на долю секунды и исчезает ?
    2. Почему у меня папка C:\Windows\winsxs\Backup – пустая ?
    Вообще причина моих поисков – не удаётся создать точку восстановления Win10 (ошибка 0x80042306)

    1. 1. Восстановление системы включено (команда systempropertiesprotection из WIN + R)? Что отвечает cmd от имени администратора на ввод команды:

      vssadmin list shadowstorage

      2. Скопируйте команды и вставьте в консоль команд от имени администратора:

      net stop vss
      net stop swprv
      regsvr32 /s ole32.dll
      regsvr32 /s oleaut32.dll
      regsvr32 /s vss_ps.dll
      vssvc /register
      regsvr32 /s /i swprv.dll
      regsvr32 /s /i eventcls.dll
      regsvr32 /s es.dll
      regsvr32 /s stdprov.dll
      regsvr32 /s vssui.dll
      regsvr32 /s msxml.dll
      regsvr32 /s msxml3.dll
      regsvr32 /s msxml4.dll
      vssvc /register
      net start swprv
      net start vss
      sc config vss start=auto
      chkdsk C: /f /r /x

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

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

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

Максимальный размер загружаемого файла: 50 МБ. Вы можете загрузить: изображение, видео. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Перетащите файлы сюда