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

Тема в разделе "FAQ по Microsoft Windows", создана пользователем OKshef, 5 янв 2010.

Метки:
  1. OKshef
    Оффлайн

    OKshef Активный пользователь

    Сообщения:
    345
    Симпатии:
    790
    Скачать скрипт автоматической проверки целостности системных файлов можно тут:
    http://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.
    • Если вы установили неизвестно-чью-сборку - готовьтесь к всевозможным сюрпризам, вплоть до отсутствия утилиты в системе.

     
    Последнее редактирование модератором: 17 дек 2013
    fseto, Михаил1989, machito и 5 другим нравится это.
  2. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Добавлю немного информации.

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



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

    Проверка 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 (либо пуск-выполнить), далее вводим команду
    Код (Text):
    findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >%userprofile%\Desktop\sfcdetails.txt
    после чего на рабочем столе появится файл sfcdetails.txt.

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

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

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


    Прошу обратить внимание на то,что windows xp не поддерживает логирование и пытаться получить лог для хр бесполезно!!!
     
    Последнее редактирование: 9 авг 2013
    E100, machito, Cooc и 4 другим нравится это.
  3. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Для того, что бы максимально упростить процесс проверки я написал небольшой bat сценарий.

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

    Все, что требуется-скачать,распаковать архив,запустить файл.
    Все остальное будет сделано автоматически-утилита проверит системные файлы и восстановит поврежденные,сформирует на форум лог, который у вас запросили на рабочем столе.
    Для тех,у кого windows xp-обязательно понадобится диск с дистрибутивом или образ смонтированный в привод.
    поиск образа происходит автоматически,реестр самому править не надо.
     
    Последнее редактирование: 1 сен 2013
    Theriollaria, fseto, machito и 8 другим нравится это.
  4. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    Koza Nozdri, нужно добавить, что создание sfcdetails.txt не поддерживается в ХР.
     
    3 пользователям это понравилось.
  5. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Почему? Команда FINDSTR работает везде.
     
    Последнее редактирование: 7 мар 2013
  6. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
  7. Сашка
    Оффлайн

    Сашка Активный пользователь

    Сообщения:
    4.670
    Симпатии:
    2.650
    Саня имеет ввиду что создание CBS лога поддерживается только начиная с висты
     
    2 пользователям это понравилось.
  8. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Ребята,я для этого написал батник,он адекватно отрабатывает каждую ось.
    На кибере я выложил дубль-дабы не провоцировать админа(скачать файл отсюда можно только при регистрации).
    Просто дайте юзеру ссыль-пусть запускает и все.
    http://www.cyberforum.ru/windows/thread628730.html#post4199903
    Вот тут файл отжима лога и проверки для всех систем универсальный ,именно для кибера.
    Запускать можно на всех системах не заморачиваясь
    На выходных допишу батник-он будет создавать журнал и выдергивать результат проверки сфц,это замена лога для вин хр.


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

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

    Кстати- если надо могу добавить в отдельный лог файлы,которые не восстановлены и отдельно то что восстановилось.
    Если надо -говорите.
     
    Последнее редактирование: 7 мар 2013
    E100 и machito нравится это.
  9. Сашка
    Оффлайн

    Сашка Активный пользователь

    Сообщения:
    4.670
    Симпатии:
    2.650
    речь идет о ведении лога, а не запуске sfc

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

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

    ServicePackSourcePath
    Installation Sources
    SourcePath

    чтобы в параметрах были указаны пути к папке i386
     
    Последнее редактирование: 7 мар 2013
    1 человеку нравится это.
  10. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Я понял.
    Лог для хр доделаю-отпишусь.
     
  11. Сашка
    Оффлайн

    Сашка Активный пользователь

    Сообщения:
    4.670
    Симпатии:
    2.650
    а лучше так:

    поиск папки i386
    сравнение параметров ключей с путем к ней
    автоматическое исправление с бекапом и ведением протокола
     
  12. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    поясни.
     
  13. Сашка
    Оффлайн

    Сашка Активный пользователь

    Сообщения:
    4.670
    Симпатии:
    2.650
    что пояснить?

    ищешь папку, сравниваешь в этих ключах пути к ней (должны совпадать). если не совпадают - исправляешь. одновременно делая бекап и ведя протокол
     
  14. vasilina
    Оффлайн

    vasilina Активный пользователь

    Сообщения:
    296
    Симпатии:
    64
    у меня к вам вопрос по этому поводу. А если загрузиться удается только с LiveCD как запустить sfc.exe /scannow на диске С

    можно ли?
     
  15. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    vasilina, загрузись с дистрибутива в среду восстановления и там из консоли запусти sfc/scannow
    ось какая?
     
  16. Сашка
    Оффлайн

    Сашка Активный пользователь

    Сообщения:
    4.670
    Симпатии:
    2.650
    4 пользователям это понравилось.
  17. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Добавил в первый пост.
     
  18. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Получается если LiveCD на XP то из под него проверку нельзя запустить.
     
  19. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    glax24, на выходных планирую сделать автоматическую заменялку файлов -сфц на хп слишком привередлива
     
    Последнее редактирование: 15 мар 2013
  20. glax24
    Оффлайн

    glax24 Разработчик

    Сообщения:
    2.000
    Симпатии:
    1.450
    Только у xp sfc таких параметров нет. И статья написана для Windows 7.
    Код (Text):
    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  Установка размера файлового кэша
     
    machito и Kиpилл нравится это.

Поделиться этой страницей