Что такое sfc и как использовать
Sfc Command (проверка системных файлов)
Примеры команд SFC, переключатели, опции и многое другое
Команда sfc – это команда командной строки, которую можно использовать для проверки и замены важных системных файлов Windows. На многих этапах устранения неполадок рекомендуется использовать команду sfc.
Проверка системных файлов – очень полезный инструмент для использования при подозрении на проблемы с защищенными файлами Windows, такими как многие файлы DLL.
Наличие команды Sfc
Команда sfc доступна из командной строки в большинстве операционных систем Windows, включая Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP и Windows 2000.
Проверка системных файлов является частью защиты файлов Windows в Windows XP и Windows 2000.
Команду sfc можно запустить только из командной строки, если она открыта с правами администратора. См. Как открыть повышенную командную строку для получения информации о том, как это сделать.
Доступность командных переключателей SFC может несколько отличаться от операционной системы к операционной системе.
Синтаксис команды Sfc
В основном, это синтаксис, необходимый для выполнения опций проверки системных файлов:
Параметры SFC [= полный путь к файлу]
Или, более конкретно, вот как это выглядит с опциями:
sfc [/scannow ] [/verifyonly ] [/scanfile = файл ] [/verifyfile = файл ] [/offbootdir = boot ] [/offwindir = победа ] [ /? ]
См. Как читать синтаксис команды, если вы не уверены, как интерпретировать синтаксис команды sfc, как написано выше или описано в таблице ниже.
Вы можете сохранить вывод команды sfc в файл, используя оператор перенаправления. См. Как перенаправить вывод команды в файл для получения инструкций или проверьте см. «Командная строка» для получения дополнительных советов, подобных этому.
Примеры команд Sfc
В приведенном выше примере утилита проверки системных файлов используется для сканирования, а затем автоматически заменяет любые поврежденные или отсутствующие системные файлы. Параметр /scannow является наиболее часто используемым параметром для команды sfc.
См. Как использовать SFC/Scannow для восстановления защищенных файлов операционной системы Windows для получения дополнительной информации об использовании команды sfc таким способом.
Приведенная выше команда sfc используется для сканирования ieframe.dll, а затем исправления в случае обнаружения проблемы.
В следующем примере защищенные файлы Windows сканируются и исправляются при необходимости (/scannow ), но это делается при другой установке Windows (/offwindir = c: \ windows ) на другом диске (/offbootdir = c: \ ).
В приведенном выше примере показано, как использовать команду sfc из командной строки в параметрах восстановления системы или из другой установки Windows на том же компьютере.
В зависимости от того, как был настроен ваш компьютер, вам может потребоваться доступ к исходному установочному диску Windows или флэш-накопителю, чтобы разрешить восстановление файлов.
Команды Sfc и дополнительная информация
Команда sfc часто используется с другими командами командной строки, такими как команда выключения, чтобы вы могли перезагрузить компьютер после запуска средства проверки системных файлов.
У Microsoft есть еще немного информации о проверке системных файлов, которая может оказаться вам полезной.
Использование средства проверки системных файлов для восстановления отсутствующих или поврежденных системных файлов
Если некоторые функции Windows не работают или Windows завершает работу, используйте средство проверки системных файлов для сканирования Windows и восстановления файлов.
Несмотря на то, что приведенные ниже шаги могут показаться сложными на первом этапе, просто выполните их по порядку, и мы попробуем помочь вам.
Запуск средства проверки системных файлов (SFC.exe)
выполнив указанные ниже действия.
Откройте командную строку с повышенными привилегиями. Для этого выполните указанные ниже действия, в зависимости от версии операционной системы:
Пользователям Windows 10, Windows 8.1 или Windows 8 перед запуском средства проверки системных файлов нужно запустить систему обслуживания образов развертывания и управления ими (DISM). (Если на вашем компьютере установлена система Windows 7 или Windows Vista, перейдите сразу к шагу 3.)
Введите следующую команду и нажмите клавишу ВВОД. Выполнение команды может занять несколько минут.
DISM.exe /Online /Cleanup-image /Restorehealth
Важно! При запуске этой команды DISM обращается к Центру обновления Windows, чтобы получить файлы для устранения повреждений. Но если поврежден клиент Центра обновления Windows, используйте работающий экземпляр Windows в качестве источника восстановления либо параллельную папку Windows из сетевого расположения или со съемного носителя, например DVD-диска Windows, в качестве источника файлов. Для этого введите в командной строке такую команду:
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source: C:\RepairSource\Windows /LimitAccess
Примечание. Вместо заполнителя C:\RepairSource\Windows укажите расположение вашего источника восстановления. Дополнительные сведения об использовании средства DISM для восстановления Windows см. в статье Восстановление образа Windows.
Введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:
Команда sfc /scannow проверит все защищенные системные файлы и заменит поврежденные файлы их кэшированной копией, расположенной в сжатой папке по адресу %WinDir%\System32\dllcache.
Заполнитель %WinDir% представляет собой папку операционной системы Windows. Например, C:\Windows.
Примечание. Не закрывайте это окно командной строки, пока проверка не завершится на 100 %. Результаты проверки будут показаны после завершения данного процесса.
После завершения процесса проверки на экране может появиться одно из приведенных ниже сообщений:
Защита ресурсов Windows не обнаружила нарушений целостности.
Это значит, что отсутствующие и поврежденные системные файлы не обнаружены.
Защита ресурсов Windows не может выполнить запрошенную операцию.
Для устранения этой проблемы выполните сканирование с помощью средства проверки системных файлов в безопасном режиме, убедитесь, что папки PendingDeletes и PendingRenames находятся в папке %WinDir%\WinSxS\Temp.
Защита ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.
Для просмотра подробных сведений о сканировании и восстановлении системных файлов перейдите к разделу Как просмотреть подробные сведения процесса работы средства проверки системных файлов.
Защита ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них. Сведения см. в журнале CBS.Log %WinDir%\Logs\CBS\CBS.log.
Проведите пальцем от правого края экрана к центру и коснитесь кнопки Поиск. Либо, если вы используете мышь, переместите указатель в правый нижний угол экрана и щелкните кнопку Поиск. Введите запрос Командная строка в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, затем выберите команду Запуск от имени администратора. Если система запросит пароль администратора или подтверждение, введите пароль или нажмите кнопку Разрешить.
Для этого нажмите кнопку Пуск, введите запрос Командная строка или cmd в поле Поиск, щелкните правой кнопкой мыши элемент Командная строка, а затем выберите команду Запуск от имени администратора. При получении запроса на ввод пароля администратора или подтверждения введите пароль или нажмите кнопку Разрешить.
Дополнительная информация
Чтобы ознакомиться с подробными сведениями, включенными в файл CBS.Log, вы можете скопировать сведения в файл Sfcdetails.txt с помощью команды Findstr, а затем просмотреть их в этом файле. Для этого выполните указанные ниже действия.
Откройте командную строку с повышенными привилегиями, как это описано на шаге 1.
Введите в командной строке приведенную ниже команду и нажмите клавишу ВВОД:
Примечание. В файле Sfcdetails.txt содержатся сведения о каждом запуске средства проверки системных файлов на компьютере. Он также содержит информацию о файлах, которые не были исправлены средством проверки системных файлов. Проверьте дату и время записей, чтобы определить проблемные файлы, обнаруженные при последнем запуске средства проверки системных файлов.
Откройте файл Sfcdetails.txt на рабочем столе.
В файле Sfcdetails.txt используется следующий формат:
Сведения о дате и времени SFC В следующем примере файла журнала содержится запись для одного файла, который не удалось исправить: 2007-01-12 12:10:42, Info CSI 00000008 [SR] Cannot repair member file [l:34<17>]»Accessibility.dll» of Accessibility, Version = 6.0.6000.16386, pA = PROCESSOR_ARCHITECTURE_MSIL (8), Culture neutral, VersionScope neutral, PublicKeyToken =
Как вручную заменить поврежденный системный файл гарантированно работоспособной копией файла.
После определения, какой системный файл поврежден и не может быть восстановлен, с помощью подробных сведений в файле Sfcdetails.txt, выясните расположение поврежденного файла, затем вручную замените поврежденный файл его гарантировано работоспособной копией. Для этого выполните указанные ниже действия.
Примечание. Гарантировано работоспособную копию системного файла можно взять с другого компьютера, на котором установлена такая же, как на вашем компьютере версия Windows. Чтобы убедиться в работоспособности системного файла, который вы планируете скопировать на другом компьютере, можно провести процесс проверки средством проверки системных файлов.
Распространите на поврежденный системный файл права собственности администратора. Для этого скопируйте, а затем вставьте (или введите) в командную строку с повышенными привилегиями приведенную ниже команду, затем нажмите клавишу ВВОД:
takeown /f Путь_и_имя_файла Примечание. Заполнитель Путь_и_имя_файла представляет собой путь и имя файла для поврежденного файла. Например, введите takeown /f C:\windows\system32\jscript.dll.
Предоставьте администраторам полный доступ к поврежденному системному файлу. Для этого скопируйте и вставьте (или введите) приведенную ниже команду и нажмите клавишу ВВОД:
icacls Путь_и_имя_файла /GRANT ADMINISTRATORS:F Примечание. Заполнитель Путь_и_имя_файла представляет собой путь и имя файла для поврежденного файла. Например, введите icacls C:\windows\system32\jscript.dll /grant administrators:F.
Замените поврежденный системный файл гарантировано работоспособной копией файла. Для этого скопируйте и вставьте (или введите) приведенную ниже команду и нажмите клавишу ВВОД:
Copy Исходный_файл Расположение Примечание. Заполнитель Исходный_файл представляет собой путь и имя гарантировано работоспособной копии файла на вашем компьютере, а заполнитель Расположение представляет собой путь и имя поврежденного файла. Например, введите copy E:\temp\jscript.dll C:\windows\system32\jscript.dll.
Восстановление системных файлов: команда sfc /scannow.
28.11.2018 windows | для начинающих
Проверка целостности системных файлов Windows 10 может пригодиться в том случае, если у вас есть основания полагать, что такие файлы были повреждены или же возникли подозрения о том, что какая-либо программа могла изменить системные файлы операционной системы.
В Windows 10 присутствует два инструмента для проверки целостности защищенных системных файлов и их автоматического восстановления при обнаружении повреждений — SFC.exe и DISM.exe, а также команда Repair-WindowsImage для Windows PowerShell (использующая DISM для работы). Вторая утилита служит дополнением первой, в случае, если SFC не удается восстановить поврежденные файлы.
Примечание: описываемые в инструкции действия безопасны, однако, в том случае, если до этого вы проделывали какие-либо операции, связанные с заменой или изменением системных файлов (например, для возможности установки сторонних тем и т.п.), в результате восстановления системных файлов, эти изменения будут отменены.
Что такое sfc /scannow?
Практически – это программа, которая, как и многие из других системных располагается в папке
C:\Windows\System32
и является неотъемлемой частью механизма защиты ресурсов Windows, который охраняет реестровые ключи и отдельные параметры от поражения (равно как и критически важные системные файлы). Если только после запуска утилиты та обнаружит изменения в этих файлах или параметрах, она – утилита – приступит (по команде пользователю) к исправлению ситуации. Для этого сама Windows всегда держит кэшированную копию файлов в системной папке с одноимённым названием. Есть желание – взгляните:
C:\Windows\winsxs\Backup
Выводы
Очевидно, что утилита sfc не является панацеей от всех видов проблем, возникающих в операционной системе Windows. Нередки случаи, когда sfc не может найти никаких повреждений в системных компонентах, или же находит и устраняет их, однако ошибки возникают вновь. Подобное поведение намекает на то, что сам механизм компонентов в операционной системе Windows довольно «сырой» и находится в перманентной «бете», о чем разработчики предпочитают молчать, просто поддерживая его в более-менее работоспособном состоянии и дорабатывая по мере своих возможностей от версии к версии. Эта догадка подтверждается большим количеством ошибок, которые невозможно исправить автоматизированными системными средствами. В этом случае, как и в случае, когда утилита sfc не обнаружила в системе поврежденных компонентов, при сохранении тенденции к нестабильной работе системы стоит рассмотреть иные способы диагностики.
System File Checker = Sfc.exe = sfc /scannow
Для запуска проверки системных файлов откройте cmd от имени админа:
В окне консоли пишем знакомую команду:
Утилита проверит нужное, в случае обнаружения несоответствия будет проведена подмена после перезагрузки. У SFC есть маленькие хитрости и скрытые нюансы. Любому из тех, кто прибегает к возможностям этого инструмента, следуют помнить, что если sfc не справилась сразу, не пренебрегите запустить её повторно. Но на этот раз отключите режим Быстрой загрузки. Оптимально количество попыток – 3. Только после трёх неудачных следует приступать к остальным средствам.
Ошибка утилиты Sfc.exe: Для завершения восстановления системы требуется перезагрузка…
Восстановление поврежденного хранилища компонентов Windows 10/Server 2020 с помощью PowerShell
В версии PowerShell в Windows 10 и Windows Server 2016/2019 есть аналоги рассмотренных выше команд DISM. Для сканирования хранилища компонентов и поиска повреждений в образе выполните:
Если ошибок в хранилище компонентов не обнаружено, появится сообщение:
ImageHealth State: Healthy
Для запуска восстановления системных компонентов и файлов наберите:
Результаты проверки sfc /scannow
Результаты работы утилиты будут сопровождаться некоторыми сообщениями в зависимости от того, успешно ли прошло восстановление или в работе произошёл сбой. Но сразу запомните: не торопитесь паниковать в случае неудачных выводов утилиты. Запустите sfc.exe несколько раз и в разных режимах.
Окно означает, что в текущем сеансе окно консоли можно закрыть: утилита запустится только после ПЕРЕЗАГРУЗКИ ( после ВЫКЛЮЧЕНИЯ компьютера ситуация может повториться). Причина сообщения ясна – файлы кэша в данную минуту обрабатываются системой (“заняты” каким-то процессом/ами: Windows элементарно ждёт применения только что установленных обновлений).
Проблема, которую вы пытаетесь разрешить, лежит, по-видимому, в иной плоскости.
Наиболее частое повреждение файлов – либо неправильная работа (а чаще удаление) сторонних программ в/из Windows, а также сбои в работе жёсткого диска (см. “Плохие секторы жёсткого диска“). И утилита частично эти проблема разрешила, подменив на исходные. Настоятельно рекомендую взглянуть на лог утилиты по адресу в консоли – там могут быть интересные детали для разрешения вероятных в последующем ошибок:
C:\Windows\Logs\CBS\CBS.log
Большинство пользователей подобное “заявление” ставит в тупик. Я могу предложить вам несколько вариантов действий:
sc config trustedinstaller start=auto net start trustedinstaller
services.msc
Ищем в списке служб Установщик модулей Windows. Тип запуска: Вручную.
C:\Windows\WinSxS\Temp
Если результат окажется тем же, возможно попробовать сдвинуть запуск утилиты восстановления ещё ближе к запуску Windows: на этот раз sfc /scannow может проверить файлы ещё до загрузки системы. Однако для этого вам потребуется загрузочный носитель с той копией Windows, которая у вас установлена:
вставьте загрузочный диск/флешку
удостоверьтесь, что система на жёстком диске видна с флешки/дисковода
Обратите внимание на букву Локального диска (D) в столбце Папка: запомните её!
ищем консоль в параметрах восстановления
и вводим команду на офлайн проверку вашей Windows:
sfc /scannow /offbootdir=d:\ /offwindir=d:\windows
где d – имя локального диска на компьютере/ноутбуке. Обратите внимание: эта команда позволит вам проверять внешние носители с установленной Windows.
Восстановление с внешнего носителя
Добраться до «Recovery Mode» можно несколькими способами. Самым надежным будет загрузка с флешки или диска, на котором находится официальный дистрибутив Win10.
Нажимаем на «Восстановление системы»
Окно с «Дополнительными параметрами»
Используем набор команд, чтобы указать командной строке с загрузочного диска, где именно находится система, которая нуждается в починке
Это нужно для того, чтобы указать командной строке с загрузочного диска, где именно находится система, которая нуждается в починке. C:Windows является значением по умолчанию, но в принципе установочная папка может находиться где угодно.
Длительность сканирования зависит от множества параметров: от скорости работы флэшки до уровня неполадок в проверяемой системе.
Примечание! Учтите, что пока мигает указатель подчеркивания на последней строчке, компьютер не завис и выполняет работу.
Читаем логи и проверяем подробности работы sfc
Путь расположения лог-файла sfc.exe вы уже знаете. Чтобы его не искать в терниях системы, по аналогии с официальной справкой по sfc.exe я предлагаю вам набрать такую команду в консоли от имени админа:
findstr /c:»[SR]» %windir%\Logs\CBS\CBS.log >»%userprofile%\Desktop\справка.txt»
На Рабочем столе появится текстовый файл, в котором вы найдёте подробности того, с чем команда sfc /scannow столкнулась:
Большинство записей (а в “холостом” режиме работы утилиты) в логах должны выглядеть так:
Sfc.exe традиционного проверяет файлы поблочно по 100 штук. Этих самых файлов немало, и потому строк в логах также много. Информация выводится по типу:
Дата Время Тип Режим доступа Подробности
А вот и проблема “…но не может восстановить некоторые из них“:
для увеличение изображения откройте его в новой вкладке
где самые частые содержания в строках такие:
Пробуем восстановить файл вручную.
Восстановление файлов из списка логов sfc вручную.
Напоминаю, что логи sfc содержат в себе только информацию о СИСТЕМНЫХ файлах: часто эта программа бесполезна против части подгружаемых со стороны библиотек DirectX, .Net и прочего. Исправит она и не все файлы для установленных программ, если такая беда случится.
Но если логами sfc битый или пустой/отсутствующий файл зафиксирован, его можно исправить. Повторяю: если вы сидите в Windows 10, у вас есть более быстрый вариант. Тут же в cmd наберите:
dism /online /cleanup-image /restorehealth
В Windows 7 придётся попотеть. Сначала получите к нему доступ и права на работу с файлом:
takeown /f полный-путь-к-файлу/папке
icacls полный-путь-к-файлу/папке /GRANT Администраторы:F
Например, система обнаружила повреждение файла System.Management.Automation.dll и не смогла его починить.
откройте в новой вкладке
Попробуем его отыскать. В логах приводится подробная о нём информация. Для таких целей идеально подходит средство поиска файлов из консоли же:
Консоль, скорее всего, выдаст несколько вариантов (заметьте, что нередко в Windows папка таковой не является – это может быть всего лишь системный узел или вид “с нескольких ракурсов”). Так что, опираясь на логи, откиньте ненужные результаты. Если всё ещё не удаётся его вычленить, используйте повторную проверку каждого из “подозреваемых” с помощью той же sfc.exe в формате (смотрите справку):
sfc /verifyfile=полный-путь-к-файлу
Остаётся обнаружить и заполучить искомый файл. Для того есть несколько способов:
После того, как вы утвердились в выборе, замените повреждённый файл на обновлённый командой в cmd в формате:
copy полный-путь-к-хорошему-файлу полный-путь-к-плохому-файлу
Не забывая о правильности вводимых путей к обоим файлам, включая буквы томов (логических дисков).
Замена системного файла вручную в Windows
Если не получилось восстановить поврежденный файл средством sfc.exe, попробуйте заменить поврежденный файл вручную. Сначала найдите информацию о неисправном файле, которая содержится в файле «CBS.log».
Для ручной замены файла нам понадобится точно такая версия Windows, откуда необходимо скопировать гарантированно работоспособный файл на свой компьютер.
Я поместил исправный файл с другого ПК в корень Локального диска «C:» (можете использовать другой диск или другое место) своего компьютера. Расположение файла: «C:\winml.dll», оно нам понадобится для выполнения команды.
Запустите командную строку от имени администратора.
Для принятия файла во владение введите команду:
takeown /f C:\полный_путь_и_имя_файла
В моем случае, если на ПК поврежден файл «winml.dll», путь будет таким:
takeown /f C:\Windows\System32\winml.dll
Теперь мне нужно получить полный доступ к файлу:
icacls C:\полный_путь_и_имя_файла /Grant Administrators:F
Для этого, я ввожу команду:
icacls C:\Windows\System32\winml.dll /Grant администраторы:F
Теперь необходимо заменить поврежденный файл работоспособной копией. Для этого введите команду:
copy путь_и_имя_работоспособного_файла путь_и_имя_поврежденного_файла
Я выполнил следующую команду:
copy C:\winml.dll C:\Windows\System32\winml.dll
Для подтверждения замены файла, введите: «Yes».