Во времена, когда самой распространенной системой Windows в сетях являлась Windows NT, выполнение установки нового приложения часто заставляло другие приложения работать с ошибками или вообще приводило к аварийному завершению работы системы. Такая нестабильная работа обычно являлась результатом модификации системной библиотеки .dll, которая совместно использовалась другими приложениями.
Эта проблема получила решение в операционной системе Windows 2000, которая не разрешала приложениям вносить изменения и перезаписывать критические системные файлы. Эти файлы обозначались как защищенные средствами операционной системы и в основном являлись библиотеками .dll и исполнимыми файлами .exe в каталоге System32.
Если программа выполняло перезапись защищенного файла, система автоматически меняла новую версию на оригинал, который хранился локально в каталоге Windows\system32\dllcache.
Если оригинальная версия перезаписанного файла отсутствовала в каталоге dllcache, пользователь получал запрос на предоставление установочного компакт-диска операционной системы Windows. После предоставления компакт-диска операционная система заменяла защищенный файл оригиналом.
Теперь после экскурса в историю защищенных файлов можно вернуться к утилите sfc. Название утилиты является аббревиатурой от "System File Checker". Утилита используется для сканирования системы и подтверждения оригинальности защищенных файлов. Если пользователь жалуется на нестабильность в работе системы, существует вероятность, что причиной проблемы является измененная копия защищенного файла.
Для исключения этого варианта из списка вероятных источников проблемы можно запустить утилиты sfc на интересующей системе.
Команда sfc имеет следующий синтаксис:
sfc [/scannow] [/scanonce] [/scanboot] [/revert] [/purgecache] [/cachesize=<размер>]
Параметры команды sfc рассматриваются в любезно предоставленной следующей таблице.
Параметры команды sfc
Параметр |
Использование |
/scannow |
Защищенные системные файлы сканируются немедленно |
/scanonce |
Защищенные системные файлы сканируются при следующей перезагрузке |
/scanboot |
Защищенные системные файлы сканируются при каждой перезагрузке |
/revert |
Возвращает службу в первоначальное состояние (проверка при загрузке не выполняется) |
/purgecache |
Очищает содержимое папки dllcache и запускает немедленное сканирование защищенных файлов. Файлы в каталоге dllcache заменяются оригинальными версиями с установочного компакт-диска. |
/cachesize=<размер> |
Устанавливает максимальный размер (в мегабайтах) каталога dllcache. |
Вот два примера использования команды sfc для проверки защищенных файлов.
Чтобы немедленно просканировать защищенные файлы введите команду:
sfc /scannow
Для сканирования защищенных файлов при каждой загрузке операционной системы введите следующую команду:
sfc /scanboot
Команда sfc требует для своего выполнения некоторого времени (до 30 минут). Кроме этого, выполнение команды оказывает высокую нагрузку на дисковую подсистему и центральный процессор, поэтому командой следует пользоваться только в периоды пониженной активности системы.
После завершения сканирования защищенных файлов с помощью команды sfc можно просмотреть системный журнал событий. Там будут находится записи об измененных защищенных файлах. События, которые указывают на замененные утилитой sfc файлы, имеют идентификатор 64020.