статьи

SCF для проверки и восстановления системных файлов /scannow

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

Мы с Вами уже говорили про встроенный в систему инструментарий, - журналы Windows, мониторинг производительности, планировщик заданий и всё такое прочее, что Важно для диагностики, настройки и понимания происходящих процессов, с помощью которых, собственно, можно решать и упреждать проблемы самого разного рода.

windows sfc - иконка статьи

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

Давайте разбираться.

Общее описание функционала SFC

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

Очень часто именно эта утилита позволяет восстановить работу компонентов (программ, служб, оснастки и тп) Windows без погружения в какие-то особенные глубины (при учете, что система грузится, а сам SFC не поврежден) после сбоев. В частности, может помочь вернуть видоизмененные вирусом системные элементы.

В Win 10 его применение даже несколько шире, - SFC может затрагивать базовые системные приложения, что позволяет быстро восстанавливать их работу в достаточно объёмном числе случаев.

к содержанию ↑

Запуск и использование

Дабы запустить утилиту нам потребуется консоль с правами администратора. Запустить её можно из папки /windows/system32/ (или найти её по нажатию на Пуск, или как-нибудь еще, благо способов предостаточно):

sfc - запуск консоли Windows - скриншот 1

sfc - другой способ запуска cmd - скриншот 2

Далее в командной строке нам потребуется запустить тот самый SFC.

к содержанию ↑

Параметры

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

  • /scannow, - проверяет целостность всех системных файлов и пытается их восстановить, наиболее частый из используемых параметров;
  • /verifyonly, - делает только проверку, без восстановления;
  • /scanfile, - при указании имени файла, проверяет конкретный файл и пытается его восстановить; требуется указание пути /scanfile=<путь>/<имяфайла>;
  • /verifyfile, - делает только проверку файла, без попыток восстановления;
  • /offbootdir, - позволяет указать автономный каталог загрузки Windows. Это позволяет делать проверку системных файлов поврежденных систем, если Вы в них не загружены (т.е, допустим, у Вас есть вторая, третья, пятая, десятая система, которая не загружается и проверку которой Вы хотите сделать);
  • /offwindir, - тоже самое, что и /offbootdir, но указывает не только загрузочный каталог, но и автономный каталог системы как таковой, что позволяет проверить больше файлов "соседней" системы.

Теперь об использовании.

к содержанию ↑

SFC и командная строка

Краткий пример команд (на каждой строке отдельная команда, при учете, что не произошло переноса, т.е все они начинаются с sfc) можно посмотреть ниже:

sfc /SCANNOW
sfc /VERIFYFILE=c:\windows\system32\kernel32.dll
sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows
sfc /VERIFYONLY

Как уже говорилось, чаще всего sfc используется в контексте /scannow, как наиболее полном и автоматизированном варианте. Результатом проверки может являться сообщения:

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

    Это значит, что отсутствующие и поврежденные системные файлы не обнаружены, но не значит, что их нет и всё в безупречном порядке. Могут быть повреждения вне области сканирования SFC;

  • Защита ресурсов Windows не может выполнить запрошенную операцию.

    Консоль не запущена от имени администратора (правда там обычно об этом явно пишется), либо требуется проверка в безопасном режиме (F8 до загрузки системы, в версиях Windows до 8-ки). В числе прочего, убедитесь, что папки PendingDeletes и PendingRenames находятся в папке %WinDir%\WinSxS\Temp;

  • Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.

    Собственно, нужно посмотреть, что там интересного понаписал лог, либо просто проверить заработало ли то, что не работало;

  • Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.

Ну и давайте взглянем как оно работает.

к содержанию ↑

Пример, факты и результирующая SFC

Примеры результата работы команды:

sfc - пример работы программы - скриншот 3

Где лежат обычно файлы логов и как выглядят:

sfc положение лога - скриншот 4

Результирующая и содержание логов:

sfc - результирующая - скриншот 5

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

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

Больше ценной информации на эту тему есть в справке Microsoft, которая живет здесь вот.

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

Перейдем к послесловию.

к содержанию ↑

Послесловие

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

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

Спасибо, что Вы с нами.

  • Андрей

    В командную строку ещё можно попасть, если нажать по значку пуск правой кнопкой мыши. Там есть и командная строка, и командная строка от имени администратора. Куда быстрее, чем искать её

    • Sonikelf

      Как вариант :)

  • User1234

    Вот же ж, давно забыл о существовании энтой утилиты, а тут напомнили, сапасибо! Ради интереса проверил файлы с атрибутом "/verifyonly" и получил: "Защита ресурсов Windows не обнаружила нарушений целостности". Ну теперя я спокоен, можно и выпить......, рюмочку чаю! ;-Р

    • Sonikelf

      Очень зря, что забыли, штука полезная :)

  • LM

    Если обнаружились нарушения целостности, но винда при этом, как ни странно, работает, как часы, то что вы посоветуете? К чему может привести восстановление целостности?

    • User1234

      Я конечно не эксперт, но на своём горьком опыте, я неоднократно убеждался в истинности древнего правила: «Работает — не трогай». :-0

    • Sonikelf

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

      • LM

        А метод сделать точку восстановления системы - использовать sfc, и если всё плохо - откатиться назад сработает?

        • Sonikelf

          Не факт

  • Дарий

    Вышло это , как это исправить то ?
    во время загрузки windows он показывает что файлы для 7win повреждены, но у меня стоит 8, и я ее ставил после форматирования, тоесть о 7 никак не может идти речи
    Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.

    • Sonikelf

      Что значит во время загрузки он показывает? Кто он? Какой загрузки? Загрузки Windows? SFC? Т.е речь о запуске самой утилиты или загрузки Windows?
      С чего Вы взяли тогда, что речь идет про 7-ку, а не 8-ку? В общем смотрите лог, пока ничего не понятно.

  • Дарий

    Давайте попробуем читать внимательнее:

    -во время, ЗАГРУЗКИ WINDOWS, он(WINDOWS) показывает что файлы для WINDOWS_7 повреждены

    -но у меня стоит 8-ка, и я ее ставил после форматирования (то-есть о 7ке никак не может идти речи)

    • Sonikelf

      Легче не стало. Давайте еще раз:

      -В общем смотрите лог, пока ничего не понятно.
      -С чего Вы взяли тогда, что речь идет про 7-ку, а не 8-ку?

      Если говорить еще проще, то приведите полный текст того, что Вам пишет Windows, а лучше снимок. И посмотрите, что пишет лог.

      А то у Вас противоречие:

      -Речи идти о 7 не может
      -Windows показывает о 7

      И вообще с этим лучше на форум.

  • Wind

    Здравствуйте!
    Подскажите, пожалуйста. В последней версии Windows 10 - 1703 нет Командной строки. Она там заменена на PowerShell. А в PowerShell не все команды проходят, которые проходят в Командной строке.
    Скажите, можно ли найти именно Командную строку в версии 1703 Windows 10?

    • Sonikelf

      Приветствую.
      Во-первых, что-то я не припомню, чтобы PowerShell не выполнял что-либо из cmd.
      Во-вторых, найти cmd.exe можно в /windows/system32/ и об этом написано в статье.

      • Wind

        Добрый день.
        Несколько дней назад обновлялся до 1703 (сейчас обратно ушел на 1607), и там у меня PowerShell не принял команду для очистки диска Windows в расширенном режиме. Вот эта команда: %systemroot%\system32\cmd.exe /c cleanmgr /sageset:65535 & cleanmgr /sagerun:65535

        Сейчас уже не могу проверить, а тогда, когда был на 1703, подумал, раз уж заменили на PowerShell, то Командной строки теперь наверное нет - на её месте PowerShell.
        Интересно бы узнать, в самой последней версии Командная строка присутствует наравне с PowerShell? Если так, то тогда всё нормально.

        • Sonikelf

          Приветствую еще раз.
          Ну я же от балды пишу, - 1703, - есть PowerShell, есть cmd, - всё есть :)

          Про команду, Powershell же сразу говорит в чем проблема:

          строка:1 знак:58
          + %systemroot%\system32\cmd.exe /c cleanmgr /sageset:65535 & cleanmgr / ...
          + ~
          Амперсанд (&) не разрешен. Оператор & зарезервирован для будущих версий. Добавьте двойные кавычки до и после амперсанда
          ("&"), чтобы передать его как строку.
          + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
          + FullyQualifiedErrorId : AmpersandNotAllowed

          Но Вы правы, в консоли оно работает, видимо я отвык :(

          • Wind

            Понятно. Нужно ковычки поставить, тогда пройдет команда.
            Спасибо.

  • Вано

    Восстановить хранилище компонентов можно с помощью средства Deployment Image & Servicing Management (DISM). DISM - это система обслуживания образов Windows.
    Сначала нужно проверить целостность хранилища оригинальных компонентов Windows
    Dism /Online /Cleanup-Image /ScanHealth
    затем вводим команду:
    DISM /Online /Cleanup-Image /RestoreHealth
    Произойдёт восстановление хранилища компонентов с помощью средства DISM, Используется центр обновления Windows. для восстановления отсутствующих файлов Наличие интернет соединения обязательно.
    Всё это действительно от win7 до 10

    • Sonikelf

      Спасибо за дополнение.

 

* - комментарии могут появляться не сразу, попасть в спам или быть удалены за несоответствие правилам