Windows Обзор утилиты sfc.exe

Может относиться для любой версии Windows

OKshef

Постоянный участник
Сообщения
248
Реакции
290
Скачать скрипт автоматической проверки целостности системных файлов можно тут:
Проверка целостности системных файлов утилитой sfc
==================================================

Утилита sfc.exe - предназначена для проверки всех версий защищенных системных файлов и восстановления их из специального кэша или дистрибутива в случае подмены или повреждения.
Запуск утилиты возможен только с правами администратора.


Для того, что бы запустить утилиту sfc.exe необходимо:
  • Для windows 7 и выше -запустить командную строку с правами администратора, введите команду
  • Для windows ХР-запустить командную строку ,введите команду
Например: sfc/scanboot

Синтаксис:​


sfc [/scannow] [/verifyonly] [/scanfile=<файл>] [/verifyfile=<файл>] [/offwindir=<автономная папка Windows> /offbootdir=<автономная папка загрузки> [/offlogfile=<путь к файлу журнала>]]

Параметры:​

/scannow - проверка целостности всех защищенных системных файлов и восстановление, по возможности, проблемных файлов.
/verifyonly - проверка целостности всех защищенных системных файлов. Восстановление файлов не выполняется.
/scanfile - проверка целостности указанного файла и его восстановление приобнаружении проблем. В параметре <файл> следует указать полный путь.
/verifyfile - проверка целостности файла, полный путь к которому указанв параметре <файл>. Восстановление файлов не выполняется.
/offbootdir - расположение автономного каталога загрузки для автономного восстановления.
/offwindir - расположение автономного каталога Windows для автономного восстановления./offlogfile Дополнительное включение ведения журнала с указанием пути к файлу журнала для автономного восстановления.

Рассмотрим практическое применение утилиты.

Повреждённые файлы

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


Примеры​

sfc /scannow
sfc /verifyfile=c:\windows\system32\kernel32.dll
sfc /scanfile=d:\windows\system32\kernel32.dll /offbootdir=d:\ /offwindir=d:\windows
sfc /scanfile=d:\windows\system32\kernel32.dll /offbootdir=d:\ /offwindir=d:\windows /offlogfile=c:\log.txt
sfc /verifyonly



Несколько дополнений:

  • В Windows XP выполнение процедуры sfc выполняется либо с установленным в дисковод установочным диском Windows XP, либо с обязательным указанием папки с дистрибутивом Windows в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup параметр SourcePath, с указанием соответствующего пути.
  • Если в системе установлен SP выше, чем интегрированный в дистрибутив (например, ваш установочный диск содержит SP2, а в системе - SP3), то потребуется дистрибутив с более новым SP.
  • Если вы установили неизвестно-чью-сборку - готовьтесь к всевозможным сюрпризам, вплоть до отсутствия утилиты в системе.

 
Последнее редактирование модератором:
Добавлю немного информации.

Когда мы введем команду sfc/scannow в окно командной строки ,то увидим по завершению проверки нечто подобное этому сообщению:
Начато сканирование системы. Этот процесс может занять некоторое время.



Код:
Начало стадии проверки при сканировании системы.

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

Сведения см. в журнале CBS.log windir\Logs\CBS\CBS.log. Например: 

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

А если юзер проворонил сообщение по окончании проверки?

Просим выслать файл:

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

И мы вполне можем увидеть послание,оставленное нам утилитой sfc.exe о своей работе,просто распарсив данные из файла или посмотрев содержимое.
А если проверка не смогла восстановить все данные или вообще замерла на нескольких процентах?

Тогда меняем поврежденные файлы вручную!
Вот тут задержусь поподробнее.

В сети полно рекомендаций типа:
запускаем win+r (либо пуск-выполнить), далее вводим команду
Код:
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >%userprofile%\Desktop\sfcdetails.txt
после чего на рабочем столе появится файл sfcdetails.txt.

Ну с одной стороны верно,ведь файл CBS.log содержит много лишней информации.
И таким методом мы отсеиваем лишние записи.

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

Все это можно отфильтровать изменив параметры команды findstr.


Прошу обратить внимание на то,что windows xp не поддерживает логирование и пытаться получить лог для хр бесполезно!!!
 
Последнее редактирование:
Для того, что бы максимально упростить процесс проверки я написал небольшой bat сценарий.

Посмотреть вложение Выполнить проверку sfc_scannow.rar

Все, что требуется-скачать,распаковать архив,запустить файл.
Все остальное будет сделано автоматически-утилита проверит системные файлы и восстановит поврежденные,сформирует на форум лог, который у вас запросили на рабочем столе.
Для тех,у кого windows xp-обязательно понадобится диск с дистрибутивом или образ смонтированный в привод.
поиск образа происходит автоматически,реестр самому править не надо.
 
Последнее редактирование:
В сети полно рекомендаций типа:
Цитата запускаем win+r (либо пуск-выполнить), далее вводим команду
Код:
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >%userprofile%\Desktop\sfcdetails.txt
после чего на рабочем столе появится файл sfcdetails.txt.
Koza Nozdri, нужно добавить, что создание sfcdetails.txt не поддерживается в ХР.
 
Ребята,я для этого написал батник,он адекватно отрабатывает каждую ось.
На кибере я выложил дубль-дабы не провоцировать админа(скачать файл отсюда можно только при регистрации).
Просто дайте юзеру ссыль-пусть запускает и все.
http://www.cyberforum.ru/windows/thread628730.html#post4199903
Вот тут файл отжима лога и проверки для всех систем универсальный ,именно для кибера.
Запускать можно на всех системах не заморачиваясь
На выходных допишу батник-он будет создавать журнал и выдергивать результат проверки сфц,это замена лога для вин хр.


А то,что я забыл дописать в теме о том что хр не поддерживает данный лог-это да,извиняюсь)))

Добавлено через 3 минуты 25 секунд
Почему? Команда FINDSTR работает везде.
Функция логирования,как и папка logs присутствует в системах начиная с висты.

Кстати- если надо могу добавить в отдельный лог файлы,которые не восстановлены и отдельно то что восстановилось.
Если надо -говорите.
 
Последнее редактирование:
речь идет о ведении лога, а не запуске sfc

в случае с xp нужно добавить автоматическую проверку этих ключей:

[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup]

ServicePackSourcePath
Installation Sources
SourcePath

чтобы в параметрах были указаны пути к папке i386
 
Последнее редактирование:
а лучше так:

поиск папки i386
сравнение параметров ключей с путем к ней
автоматическое исправление с бекапом и ведением протокола
 
что пояснить?

ищешь папку, сравниваешь в этих ключах пути к ней (должны совпадать). если не совпадают - исправляешь. одновременно делая бекап и ведя протокол
 
у меня к вам вопрос по этому поводу. А если загрузиться удается только с LiveCD как запустить sfc.exe /scannow на диске С

можно ли?
 
vasilina, загрузись с дистрибутива в среду восстановления и там из консоли запусти sfc/scannow
ось какая?
 
sfc /scannow /OFFBOOTDIR= буква:\ /OFFWINDIR=буква:\windows

glax24, на выходных планирую сделать автоматическую заменялку файлов -сфц на хп слишком привередлива
 
Последнее редактирование:
sfc /scannow /OFFBOOTDIR= буква:\ /OFFWINDIR=буква:\windows
Только у xp sfc таких параметров нет. И статья написана для Windows 7.
Код:
sfc /?

Проверка файлов Windows Microsoft(R) Windows XP, версия 5.1
(C) 1999-2000 Корпорация Майкрософт, все права защищены.

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

SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x]


/SCANNOW      Немедленная проверка всех защищенных системных файлов
/SCANONCE     Разовая проверка при следующей загрузке
/SCANBOOT     Проверка всех защищенных системных файлов при каждой загрузке
/REVERT       Устанавливает исходные параметры по умолчанию.
/ENABLE       Включение нормальной работы защиты файлов Windows
/PURGECACHE   Очистка файлового кэша и немедленная проверка файлов
/CACHESIZE=x  Установка размера файлового кэша
 
Назад
Сверху Снизу