Sfc scannow offbootdir d offwindir d windows что это

Особенности работы средства проверки системных файлов (SFC.exe) в среде Windows RE

Посетителей: 121067 | Просмотров: 165316 (сегодня 12) Шрифт:

Средство проверки системных файлов позволяет проверить версии всех защищенных файлов. Если при проверке системных файлов обнаруживается, что защищенный файл был изменен, то он заменяется его исходной версией.

SFC в среде Windows

Для выполнения подобной проверки в Windows достаточно запустить командную строку с правами администратора и выполнить:

Ниже приводится таблица с синтаксисом утилиты и с пояснением значений используемых ключей.

Таблица 1 — Синтаксис утилиты sfc.exe

SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE= ] [/VERIFYFILE= ]

/SCANNOW Проверка целостности всех защищенных системных файлов и восстановление, по возможности, проблемных файлов. /VERIFYONLY Проверка целостности всех защищенных системных файлов. Восстановление файлов не выполняется. /SCANFILE Проверка целостности указанного файла и его восстановление при обнаружении проблем. В параметре следует указать полный путь /VERIFYFILE Проверка целостности файла, полный путь к которому указан в параметре . Восстановление файлов не выполняется. /OFFBOOTDIR Расположение автономного каталога загрузки для автономного восстановления /OFFWINDIR Расположение автономного каталога Windows для автономного восстановления например: sfc /SCANNOW sfc /VERIFYFILE=c:\windows\system32\kernel32.dll sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows sfc /VERIFYONLY

SFC в среде Windows RE

Взяться за написание статьи подвигло непонятное поведение утилиты sfc. exe в среде Windows RE при загрузке с установочного диска или диска восстановления, а именно предложение перезагрузить систему и выполнить проверку еще раз.

Рисунок 1 – Запуск утилиты в среде восстановления без ключей и требование перезагрузки

Подобное поведение имеет вполне логичное объяснение: для среды Windows RE раздел диска, с находящейся на ней операционной системой, является автономным каталогом. Следовательно, запуск утилиты с ключами /OFFBOOTDIR и /OFFWINDIR обязателен. Дальше выясним значения этих ключей.

Расположение и буквы разделов в проводнике Windows или в оснастке управления дисками могут отличаться от букв, присвоенных разделам в среде восстановления. Обратите внимание, что на рисунках ниже раздел с системой имеет букву С.

Рисунок 2 – Раздел с системой в проводнике Windows

Рисунок 3 – Раздел с системой в оснастке «Управление дисками»

Вадим Стеркин предложил замечательный способ определения букв разделов в среде восстановления. Есть и другой — воспользоваться утилитой DISKPART. Загрузитесь в среду восстановления с установочного диска Windows, войдите в командную строку и выполните последовательно:

Комментарий к командам:

  • Запуск DISKPART
  • Вывод списка жестких дисков, установленных в компьютере с присвоенными им номерами. Нужный номер будет использован в следующей команде. Если диск один, то выполнять команду не нужно.
  • Выделение для работы (передача фокуса) жесткому диску с разделом, на котором установлена система.
  • Получение информации об имеющихся разделах на выбранном диске с указанием присвоенных им букв.

Рисунок 4 – Определение буквы системного раздела и выполнение проверки в среде Windows RE

Буква того раздела, на котором установлена Windows 7, нужна будет на следующем шаге. В нашем случае это буква Е (рис. 4).

Читайте также:  Djvu reader pro mac os

Обязательно завершите работу с DISKPART:

Наконец, выполним проверку целостности системных файлов:

Первая команда задает расположение для файла журнала утилиты, который не создается автоматически в среде восстановления, а вторая — запускает сканирование. В значении обоих ключей второй команды используется одна и та же буква

Будьте внимательны! Если в синтаксисе команды или в определении буквы системного раздела будут допущены ошибки, проверка не сможет быть выполнена.

Большое спасибо моему коллеге Vancouver , модератору форума Windows 7, за помощь в подготовке этой статьи.

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

Утилита SFC.EXE ( S ystem F iles C hecker) существует во всех версиях Windows, начиная с Windows 2000, и предназначена для проверки состояния и восстановления системных файлов. Механизмы защиты важных файлов в разных версиях Windows реализованы по-разному, но все они учитывают тот факт, что какие-либо системные файлы (обычно исполняемые файлы .exe, файлы библиотек .dll, файлы драйверов) могут быть изменены сторонним программным обеспечением, и должен быть механизм, позволяющий проверить их целостность и отменить обнаруженные изменения.

Формат командной строки:

SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=файл] [/VERIFYFILE=файл][/OFFWINDIR=автономная папка Windows /OFFBOOTDIR=автономная папка загрузки]

Параметры командной строки:

/SCANNOW — Проверка целостности всех защищенных системных файлов и восстановление, по возможности, проблемных файлов.

/VERIFYONLY — Проверка целостности всех защищенных системных файлов. Восстановление файлов не выполняется.

/SCANFILE — Проверка целостности указанного файла и его восстановление при обнаружении проблем. В параметре файл следует указать полный путь

/VERIFYFILE — Проверка целостности файла, полный путь к которому указан в параметре файл . Восстановление файлов не выполняется.

/OFFBOOTDIR — Расположение автономного каталога загрузки для автономного восстановления

/OFFWINDIR — Расположение автономного каталога Windows для автономного восстановления

Примеры использования команды SFC:

sfc /? — отобразить подсказку по использованию.

sfc /scannow — выполнить проверку целостности системных файлов и восстановить поврежденные. Результаты работы записываются в журнал утилиты \Windows\Logs\CBS\CBS.log.

sfc /verifyonly — выполнить только сканирование системных файлов без исправления.

sfc /VERIFYFILE=c:\windows\system32\cmd.exe — сканировать только файл cmd.exe

sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows — сканировать только файл kernel32.dll из состава операционной системы, установленной на логическом диске D: . При выполнении сканирования файлов автономной Windows, ведение файла журнала в настоящее время не поддерживается.

В процессе выполнения программы, на экране отображается информация о ходе сканирования и результаты работы. Пример вывода при использовании сканирования с исправлением командой sfc /scannow :

Начато сканирование системы. Этот процесс может занять некоторое время.

Начало стадии проверки при сканировании системы.
Проверка 100% завершена.

Программа защиты ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Подробные сведения см. в файле CBS.Log, который находится по следующему пути: windir\Logs\CBS\CBS.log. Например, C:\Windows\Logs\CBS\CBS.log. Обратите внимание, что ведение журнала в настоящее время не поддерживается для автономного обслуживания.

Начиная с Windows Vista, в качестве средства по обслуживанию компонент операционной системы используется Component-Based Servicing (CBS) — специальный набор программных средств для обеспечения ее целостности. CBS является частью Component Servicing Infrastructure (CSI) , обеспечивающей необходимые изменения текущего состояния Windows, например, при обновлении системы (Windows Update), установке или удалении программ и компонент, обновлении драйверов устройств и т.п. Фактически, CBS предоставляет программный интерфейс (API) инсталляторам для корректного изменения текущего состояния системы. Система обслуживания ОС Windows фиксирует множество событий, связанных с отслеживанием этого состояния, в специальном файле C:\Windows\Logs\CBS\CBS.log

Читайте также:  Ilo driver windows 2012

Файл журнала CBS.log, кроме всего прочего, содержит и подробные сведения о ходе выполнения сканирования утилиты sfc.exe и его результатах. Для каждого сканируемого файла записывается дата, время и дополнительные сведения о проверке. Через каждые 100 проверок отображается итоговая информация, сопровождаемая тегом [SR] , что позволяет выделить из довольно объемного текста только те записи, которые содержат данный признак, с использованием команды поиска строки в текстовом файле findstr :

findstr /c:»[SR]» %windir%\logs\cbs\cbs.log >sfcdetails.txt — найти строки, содержащие [SR] и вывести их в файл sfcdetails.txt текущего каталога.

Пример содержимого файла журнала, содержащего только строки с тегом [SR] :

00004b78 [SR] Verifying 100 (0x0000000000000064) components
00004b79 [SR] Beginning Verify and Repair transaction
00004be0 [SR] Verify complete
00004be1 [SR] Verifying 100 (0x0000000000000064) components
00004be2 [SR] Beginning Verify and Repair transaction
00004c30 [SR] Repairing corrupted file «\??\C:\WINDOWS\System32\cmd.exe» from store
00004c5a [SR] Verify complete
. . . .
00005594 [SR] Committing transaction
00005599 [SR] Verify and Repair Transaction completed. All files and registry keys listed
in this transaction have been successfully repaired

В данном примере, проверено 100 файлов, в которых не обнаружено никаких отклонений, а в следующей порции был обнаружен и успешно исправлен файл msprivs.dll.mui . Последние 2 строки сообщают о завершении работы, и о том, что все файлы и ключи реестра были успешно восстановлены.

В тех случаях, когда не удалось восстановить поврежденный файл, в журнале будет присутствовать строка, содержащая:

Cannot repair member file Имя Файла Детальная информация о файле

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

Для поиска информации в тексте журналов cbs.log удобно фильтровать записи по характерным признакам событий, зафиксированных в журнале:

findstr /c:»Cannot repair» %windir%\logs\cbs\cbs.log >sfcnotrepair.txt — записывать в текстовый файл sfcnotrepair.txt только те строки журнала cbs.log , которые содержат строку Cannot repair , т.е. на выходе мы получим перечень системных файлов, которые не удалось восстановить.

findstr /c:»succsessfylly repaired» %windir%\logs\cbs\cbs.log >sfcnotrepair.txt — записывать в текстовый файл sfcnotrepair.txt только те строки журнала cbs.log , которые содержат строку succsessfylly repaired , т.е. на выходе мы получим перечень системных файлов, которые удалось восстановить.

В каталоге \Windows\Logs\CBS\ кроме текущего файла журнала cbs.log могут храниться устаревшие копии журналов в виде сжатых файлов с именем CbsPersist_ГГГГММДДnnnnnn.cab , которые, при необходимости можно распаковать для дальнейшего углубленного анализа.

В среде Windows 8-10 для восстановления системных компонент Windows, возможно использование утилиты Dism.exe , поддерживающей (чего не было в Windows Vista/Windows 7) параметр RestoreHealth :

dism /Online /Cleanup-Image /RestoreHealth — для восстановления системных файлов текущей ОС Windows.

Для Windows 7 параметр /RestoreHealth неприменим и функции восстановления объединены с функциями сканирования, задаваемыми параметром /ScanHealth :

dism /Online /Cleanup-Image /ScanHealth — для восстановления системных файлов текущей ОС Windows 7.

Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»

Читайте также:  Создание образа системы linux acronis

sfc.exe

Утилита sfc.exe проверяет целостность всех системных файлов, защищенных системой защиты файлов Windows (wfp), в нее встроена возможность автоматической замены поврежденных версий корректными версиями Microsoft. Для запуска программы пользователь должен иметь права Администратора .

Содержание

Применение

Аргументы заключенные в квадратные скобки [ ] не обязательные параметры

Описание

При запуске sfc использует ряд флагов, самый используемый из которых это /scannow . sfc можно запустить на всех компьютерах под управлением Windows, а также в консоли восстановления Windows, но стоит учесть что все флаги поддерживаются во всех операционных системах. Подробнее в графе Совместимость.

Выводит список всех имеющихся флагов

Проверяет целостность всех защищенных системных файлов и восстанавливает поврежденные или измененные файлы сразу после выполнения команды. Эти файлы будут восстановлены в их значения по умолчанию.

Проверяет целостность всех защищенных системных файлов, но не восстанавливает их.

Сканирует целостность указанного файла (по абсолютному пути filePath ) и восстанавливает его если выявлены изменения. Пример абсолютного пути, когда вместо filePath будет c:\windows\system32\example.dll

Сканирует целостность указанного файла (по абсолютному пути filePath ) но не и восстанавливает его. Пример абсолютного пути, когда вместо filePath будет c:\windows\system32\example.dll

Необходим чтобы вручную указать диск на который установлена Windows и на котором мы ищем изменение файлов.

Задает букву диска с которого берутся файлы для восстановления. Он используется совместно с /offwindir = в консоли восстановления. Пример использования в консоли: sfc /scannow /offbootdir=d:\ /offwindir=d:\windows . В указанном примере сканируются и ремонтируются файлы, указанные флагом offwindir с использованием оригинальных файлов Microsoft найденных в пути offbootdir .

Сканировать и восстанавливать файлы при следующей загрузке Windows

Сканировать и восстанавливать файлы при каждой загрузке Windows

Эта команда используется для отмены ранее выполненных команд. Например, если пользователь выполнил команду /scanboot , которая запускает сканирование при каждой загрузке Windows, то команда /revert прекратит этот процесс.

Удаление исходных файлов (по которым происходит восстановление) из папки кэша Windows. Нужно пользоваться этой командой с осторожностью, поскольку может привести к сбоям системы. Команда также запускает сканирование системы и заполняет папку кэша копиями текущих файлов системы.

Изменяет размер кэша, под потребности пользователя. Параметр x задает количество мегабайт.

Коды возврата

Возвращает 0 если операция выполнена успешно и 0 если с ошибками.

Пример использования

Чтобы немедленно просканировать и восстановить поврежденные системные файлы:

Чтобы проверить целостность файла без его исправления

Проверить файл example.dll в консоли восстановления системы с установочного f: диска Windows

sfc /scanfile=d:\windows\system32\example.dll /offbootdir=f:\ /offwindir=d:\windows

Совместимость

Утилита sfc совместима с операционными системами Windows Vista и выше.

Возможные проблемы

  1. sfc scannow не удается запустить службу восстановления – Проверьте чтобы была запущена служба Установщик модулей Windows . (Панель управления\Администрирование\Службы) и тип запуска стоит Вручную
  2. sfc scannow не может восстановить файлы – Попробуйте выполнить следующую команду

Dism /Online /Cleanup-Image /RestoreHealth

Она используется для восстановления поврежденных компонентов, после чего перезагрузите компьютер и попробуйте выполнить sfc /scannow еще раз.

Второй вариант это заменить файлы, которые утилита не может восстановить самостоятельно либо с другого компьютера, либо с резервной копии и т.п.
Для этого нужно получить список файлов, которые утилита не смогла восстановить вводим:

Оцените статью