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

OKshef

Постоянный участник
Сообщения
248
Реакции
290
Скачать скрипт автоматической проверки целостности системных файлов можно тут:
https://safezone.cc/resources/proverka-celostnosti-sistemnyx-fajlov-utilitoj-sfc.55/
==================================================

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


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

Синтаксис:

sfc [/scannow] [/scanonce] [/scanboot] [/revert] [/cancel] [/enable] [/purgecache] [/cachesize=x] [/quiet]

Параметры:

/scannow - немедленная проверка всех защищённых системных файлов;
/scanonce - проверка защищённых системных файлов при следующей загрузке системы;
/scanboot - проверка всех защищённых системных файлов при каждой загрузке системы;
/revert - восстановление всех настроек по умолчанию;
/purgecache - очистка кэша защищённых файлов программы и немедленная проверка всех защищённых системных файлов;
/cachesize=х - установка размера кэша защищённых файлов в мегабайтах (по умолчанию - 50Мбайт);
Рассмотрим практическое применение утилиты.
Повреждённые файлы
Например,на вашем компе отсутствуют некоторые шрифты(а это тоже системные файлы). Проверяем наличие системных файлов с помощью команды:
sfc.exe /scannow
Windows проверит и при необходимости переустановит недостающие или повреждённые файлы.

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

sfc /cachesize=x
Где Х - число
Числом будет количество мегабайт,которое должно резервироваться для папки c\windows\system32\dllcache. Можно поставить 0


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

  • В 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  Установка размера файлового кэша
 
Назад
Сверху Снизу