Материал из РУВИКИ — свободной энциклопедии

Проверка системных файлов

Проверка системных файлов
Тип системная утилита
Разработчик Microsoft
Операционная система Microsoft Windows
Лицензия проприетарное программное обеспечение коммерческое программное обеспечение
Сайт docs.microsoft.com/en-us…

Проверка системных файлов (SFC) — утилита в составе Microsoft Windows, позволяющая сканировать и восстанавливать повреждённые системные файлы Windows[1].[2]

Общие сведения

[править | править код]

Корпорация Microsoft поставляет данную утилиту начиная с Windows 98, Windows 2000 и всех последующих версий семейства Windows NT. В Windows Vista, Windows 7 и Windows 10 Проверка системных файлов интегрирована с Защитой ресурсов Windows (WRP), защищающей не только системные файлы, но и ключи и папки реестра. В Windows Vista программа sfc.exe может использоваться для проверки определённых путей, в том числе системной папки Windows и папки загрузки.

Защита файлов Windows (WFP) работает, регистрируя уведомления об изменениях файлов через Winlogon. В случае обнаружения изменений в защищённом системном файле, модифицированный файл восстанавливается из кэшированной копии, которая хранится в сжатой папке по пути %WinDir%\System32\dllcache.

Защита ресурсов Windows (WRP) реализует защиту посредством списков дискретного управления доступом (DACL) и ACL, заданных для защищаемых ресурсов. При обнаружении изменений WRP-включённых системных файлов их содержимое восстанавливается из кэша, находящегося в каталоге %WinDir%\WinSxS\Backup[3]. Полные права на изменение ресурсов, находящихся под защитой WRP, имеют только процессы, использующие сервис Windows Modules Installer (TrustedInstaller.exe). Администраторы больше не обладают полными правами к системным файлам.

В связи с тем, что приложения Windows могли перезаписывать системные файлы в Windows 95, компания Microsoft внедрила меры по их защите от несанкционированных изменений, ошибок и уязвимостей, таких как конфликты DLL.

Проверка системных файлов впервые появилась в Windows 98 как графическая утилита. Она позволяла сканировать и восстанавливать повреждённые системные файлы путём сопоставления их версий с базой, содержащей оригинальные номера версий файлов чистой установки Windows 98. Этот механизм определения системных файлов по сути был простым, так как использовал расширения файлов и их пути. Восстановление производилось с установочного диска или указанных пользователем источников. При этом реального времени защиты или реактивных действий в Windows 98 не предусматривалось, помимо использования атрибутов файлов.

Всем системам на базе Windows NT, начиная с Windows 2000, была добавлена защита файлов в реальном времени, называемая Защитой файлов Windows (WFP)[4].

Параллельно саму утилиту Проверка системных файлов (sfc.exe) переработали, представив как более мощную консольную программу, интегрированную с WFP. В отличие от версии для Windows 98, новая утилита осуществляла сканирование защищённых файлов с использованием WFP и позволяла немедленно восстановить их содержимое из папки DLLCache либо установочного носителя.

В Windows Me утилиты SFC не было[5] — вместо неё была реализована Защита системных файлов (SFP)[6]. Как и WFP, SFP обеспечивала защиту в реальном времени.

Компонент Проверки системных файлов, входивший в версии Windows 2000 до Service Pack 4, мог перезаписывать установленные обновления, распространяемые Microsoft[7]; эта проблема была устранена в Windows 2000 Service Pack 4.

Использование

[править | править код]

В операционных системах семейства Windows NT Проверка системных файлов вызывается из командной строки Windows (требуются права администратора[8]) одной из следующих команд:

  • sfc /scannow (для поиска и восстановления проблем)
  • либо sfc /verifyonly (без восстановления)

Если будут обнаружены проблемы, утилита попытается заменить повреждённые файлы из DLL Cache (%WinDir%\System32\dllcache). Если нужного файла не окажется в кэше или он повреждён, пользователь получит запрос на установочный носитель Windows или указание сетевого пути к дистрибутиву. Проверка системных файлов определяет путь к источнику установки Windows по значениям реестра SourcePath и ServicePackSourcePath[9]. В ряде случаев запрос на носитель может повторяться даже при правильном предоставлении, если указанные значения заданы некорректно[10].

В Windows Vista и более поздних версиях файлы защищаются с использованием ACL, и при обнаружении проблемы восстанавливаются из резервной копии Windows Side-by-side (%WinDir%\WinSxS\Backup)[3]. При этом синтаксис вышеуказанных команд не изменился.

Проверка системных файлов в Windows Vista и более поздних версиях может выполнять сканирование отдельных файлов, а также проводить проверку и восстановление для офлайн-установки Windows, например, если система не загружается. Для выполнения сканирования на нерабочей системе требуется запуск Проверки системных файлов с другой рабочей Windows или с установочного DVD/диска восстановления, который содержит Windows Recovery Environment[11].

В случаях повреждения хранилища компонентов, для Windows 7, Windows Vista, Windows Server 2008 R2 и Windows Server 2008 применима «System Update Readiness Tool» (CheckSUR), которую впоследствии сменила служебная программа DISM (Deployment Image Servicing and Management Tool) для Windows 10, Windows 8.1, Windows 8, Windows Server 2012 R2 и Windows Server 2012. Она проверяет хранилище компонентов на целостность и загружает необходимые файлы для исправления найденных ошибок через обновление Windows[12].

Примечания

[править | править код]
  1. Boswell, William. Using the System File Checker, SFC // Inside Windows Server 2003. — 2003. — P. 860. — «Командная утилита, входящая в Windows Server 2003, позволяет изменять параметры WFP. Называемая System File Checker или SFC, эта утилита также может восстанавливать файлы в директории D11Cache, если те были случайно удалены.». — ISBN 9780735711587.
  2. Команда SFC в MS-DOS и Windows (англ.). computerhope.com. Дата обращения: 10 июня 2024. Архивировано 23 июня 2025 года.
  3. 1 2 stevewhims Protected Resource List – Win32 apps (англ.). learn.microsoft.com (7 января 2021). Дата обращения: 15 марта 2024. Архивировано 9 декабря 2024 года.
  4. Описание функции Защиты файлов Windows. Support. Microsoft (15 декабря 2003). Дата обращения: 28 августа 2006. Архивировано 20 октября 2004 года.
  5. Spector, Lincoln Answer Line: Windows 98 Utilities Missing in Windows Me? PC World. IDG (14 февраля 2001). Дата обращения: 26 декабря 2011. Архивировано 5 июня 2011 года.
  6. System File Protection and Windows Me. Microsoft (4 декабря 2011). Дата обращения: 28 августа 2006. Архивировано 22 июня 2004 года.
  7. Команда SFC /SCANNOW может перезаписать файлы обновлений. Support. Microsoft (30 октября 2006). Дата обращения: 1 февраля 2010. Архивировано 16 ноября 2006 года.
  8. SFC — Проверка системных файлов Windows CMD (англ.). SS64.com. Дата обращения: 12 сентября 2023. Архивировано 4 августа 2025 года.
  9. System File Checker не принимает сетевой путь с установочным CD при запуске scannow в Windows XP SP2 или Windows Server 2003. Support. Microsoft (13 января 2005). Архивировано 16 января 2007 года.
  10. Запрос на установочный CD Windows XP SP2 при запуске SFC на компьютере с Windows XP SP2. Support. Microsoft (5 июля 2005). Архивировано 7 февраля 2007 года.
  11. kumar, Rohit Запуск Проверки системных файлов для восстановления Windows 10/8/7 (англ.). Craxworld. Self Published (26 июля 2016). Архивировано 11 сентября 2016 года.
  12. Устранение ошибок Центра обновления Windows с помощью DISM или System Update Readiness Tool. Support. Microsoft (22 января 2017). Дата обращения: 11 февраля 2017. Архивировано 22 января 2017 года.

Литература

[править | править код]
  • Frisch, Æleen. Windows 2000 Commands Pocket Reference. — O'Reilly, 2001. — ISBN 978-0-596-00148-3.
  • John Paul Mueller. Windows Administration at the Command Line for Windows Vista, Windows 2003, Windows XP, and Windows 2000. — John Wiley & Sons, 2007. — ISBN 978-0470165799.