В состав Windows 2000/XP включено средство проверки системных файлов (System File Checker, Sfc.exe), которое представляет собой утилиту командной строки. Эта утилита сканирует все установленные системные файлы и выполняет проверку их версий при перезагрузке компьютера. Если данная утилита обнаружит, что один из защищаемых системных файлов был замещен, она найдет корректную версию этого файла в каталоге %SystemRoot%\Sys,tem32\D\\cache, и запишет ее поверх измененного файла.
Утилита командной строки имеет следующий синтаксис:
/scannow — параметр, при использовании которого выполняется немедленное сканирование всех защищаемых системных файлов;
/scanonce — параметр, указывающий на необходимость однократного сканирования всех защищаемых системных файлов;
/scanboot — параметр, задающий опцию сканирования всех защищаемых системных файлов при каждой перезагрузке;
/cancel — параметр, отменяющий все отложенные запросы на сканирование защищаемых системных файлов;
/quiet — параметр, при установке которого замена всех некорректных версий защищаемых файлов будет происходить без вывода предупреждения для пользователя;
/enable — устанавливает стандартный режим работы средства System File Checker;
/purgecache — очищает файловый кэш System File Protection и выполняет немедленное сканирование системных файлов;
/cachesize=x — устанавливает размер файлового кэша System File Protection (в мегабайтах).
Примечание
Чтобы получить возможность применять утилиту Sfc.exe, необходимо зарегистрироваться на компьютере от имени администратора или пользователя, являющегося членом группы Администраторы (Administrators).
Если содержимое папки %SysfemRoot%\System32\Dllcache окажется поврежденным, воспользуйтесь командами Sfc /scanonce, sfc /scannow или sfc /scanboot, которые позволят восстановить содержимое папки \Dllcache.
Снова зададимся вопросом: а где же хранятся параметры, управляющие работой System File Checker (SFC)? Наверняка, никто не удивится, когда окажется, что и они располагаются именно в реестре. Все параметры реестра, управляющие поведением SFC, располагаются под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows NT\CurrentVersion\Winlogon. Вот они:
SFCDisable — первый параметр реестра, который читает SFC. Если значение этого параметра не установлено равным 0, и система находится в отладочном режиме (активен отладчик ядра WinDbg), то SFC блокирует функции защиты системных файлов и драйверов Windows 2000/XP;
SFCScan. Если значение этого параметра установлено в 1, то SFC выполнит первичную проверку системных файлов сразу же после инициализации системы. Если значение srcscan установлено равным 2, то после выполнения первичной проверки системных файлов SFC сбросит значение этого параметра в 0. Значение 0 (устанавливается по умолчанию) указывает SFC на необходимость защиты системных файлов, но сканирование после инициализации не выполняется;
SfcDllCacheDir — указывает путь к каталогу \Dllcache;
SFCQuota — значение этого параметра указывает суммарный максимальный объем файлов, наблюдение за которыми требуется осуществлять.
Примечание
Все перечисленные параметры реестра не являются обязательными. Если они отсутствуют в реестре, то SFC ведет себя так, как если бы все они существовали, но имели значения, принятые по умолчанию (для SFCQuota значение по умолчанию равно -1, что соответствует неограниченному объему проверяемых данных).