Проверка целостности системных файлов Windows 10 может пригодиться в том случае, если у вас есть основания полагать, что такие файлы были повреждены или же возникли подозрения о том, что какая-либо программа могла изменить системные файлы операционной системы.
В Windows 10 присутствует два инструмента для проверки целостности защищенных системных файлов и их автоматического восстановления при обнаружении повреждений - SFC.exe и DISM.exe, а также команда Repair-WindowsImage для Windows PowerShell (использующая DISM для работы). Вторая утилита служит дополнением первой, в случае, если SFC не удается восстановить поврежденные файлы.
Утилита для развертывания и обслуживания образов Windows DISM.exe позволяет выявить и исправить те проблемы с хранилищем системных компонентов Windows 10, откуда при проверке и исправлении целостности системных файлов копируются оригинальные их версии. Это может быть полезным в тех ситуациях, когда защита ресурсов Windows не может выполнить восстановление файлов, несмотря на найденные повреждения. В этом случае сценарий будет следующим: восстанавливаем хранилище компонентов, а после этого снова прибегаем к использованию sfc /scannow.
Для использования DISM.exe, запустите командную строку от имени администратора. После чего можно использовать следующие команды:
Примечание: в случае, если команда восстановления хранилища компонентов не работает по той или иной причине, вы можете использовать файл install.wim (или esd) со смонтированного ISO образа Windows 10 () в качестве источника файлов, требующих восстановления (содержимое образа должно соответствовать установленной системе). Сделать это можно с помощью команды:
Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:путь_к_файлу_wim:1 /limitaccess
Вместо.wim можно использовать файл.esd тем же образом, заменив в команде все wim на esd.
При использовании указанных команд, журнал выполненных действий сохраняется в Windows\Logs\CBS\CBS.log и Windows\Logs\DISM\dism.log .
DISM.exe также можно использовать в Windows PowerShell, запущенном от имени администратора (запустить можно из меню правого клика по кнопке Пуск) с помощью команды Repair-WindowsImage . Примеры команд:
- Repair-WindowsImage -Online -ScanHealth - проверка наличия повреждений системных файлов.
- Repair-WindowsImage -Online -RestoreHealth - проверка и исправление повреждений.
Дополнительные методы восстановления хранилища компонентов, если описанные выше не срабатывают: .
Как видите, проверка целостности файлов в Windows 10 - не такая уж и сложная задача, которая порой может помочь исправить самые разные проблемы с ОС. Если не смогла, возможно, вам поможет что-то из вариантов в инструкции .
Как проверить целостность системных файлов Windows 10 - видео
Также предлагаю ознакомиться с видео, где использование основных команд проверки целостности показано наглядно с некоторыми пояснениями.
Дополнительная информация
Если sfc /scannow сообщает о том, что защите системы не удалось выполнить восстановление системных файлов, а восстановление хранилища компонентов (с последующим повторным запуском sfc) не помогло решить проблему, вы можете просмотреть, какие именно системные файлы были повреждены, обратившись к журналу CBS.log. Для того, чтобы экспортировать нужные сведения из журнала в текстовый файл sfc на рабочем столе, используйте команду:
Findstr /c:"" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfc.txt"
Также, по некоторым отзывам, проверка целостности с помощью SFC в Windows 10 может обнаруживать повреждения сразу после установки обновления с новой сборкой системы (без возможности исправить их, не установив новую сборку «начисто»), а также для некоторых версий драйверов видеокарт (в данном случае ошибка находится для файла opencl.dll. Если что-то из этих вариантов случилось и у вас, возможно, не следует предпринимать никаких действий.
Возвращаясь к технологии хранилища компонентов (Component Store)в Windows 8 рассмотрим сценарии его восстановления. Напомним, что начиная с Windows Vista Microsoft ввела концепцию компонентного обслуживания ОС (component based servicing). Благодаря компонентной структуре удалось добиться создания более стабильной системы установки/удаления обновлений, патчей и пакетов обновлений SP. Эта же система лежит в основе архитектуры Windows 8. Файлы хранилища компонентов Windows на диске располагаются в каталоге \ Windows \ WinSxS , имеющего свойство со временем значительно разрастаться в размерах (подробнее о том, почему размер этого каталога со временем растет и как уменьшить размер папки WinSxS читайте в ).
Однако в некоторых случая хранилище компонентов может повреждаться, что приводит к проблемам при установке обновлений Windows и другого ПО Microsoft. Для восстановления хранилища компонентов в предыдущих версиях Windows (Windows Vista, Windows 7, Windows Server 2008 /R2) Microsoft разработала специальную утилиту — CheckSUR или System Update Readiness Tool (KB947821). Данная утилита является достаточно большой по размеру (более 350 Мб), и по мере выход новых обновлений Windows регулярно обновляется. Это означает, что каждый раз приходится выкачивать свежую версию CheckSUR .
Совет . В одной из предыдущих статей мы уже рассматривали пример использования CheckSUR для поиска и восстановления поврежденных компонентов: .
Что же делает данная утилита? System Update Readiness Tool проверяет целостность следующих ресурсов:
- Файлы в каталогах:
- %SYSTEMROOT%\Servicing\Packages
- %SYSTEMROOT%\WinSxS\Manifests
- Содержимое веток реестра:
- %SYSTEMROOT%\WinSxS\Manifests
- HKEY_LOCAL_MACHINE\Schema
- HKEY_LOCAL_MACHINE\Components
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing
В том случае, если утилитой CheckSUR будут обнаружены ошибки или несоответствия, она попытается их восстановить.
Проблемы с хранилищем компонентов могут вызывать различные ошибки при установке обновлений Windows. Ниже приведен список типовых кодов ошибок, которые данная утилита должна устранить.
Список ошибок WindowsUpdate, вызванных повреждением хранилища компонентов
Code | Error | Description |
0×80070002 | ERROR_FILE_NOT_FOUND | The system cannot find the file specified. |
0x8007000D | ERROR_INVALID_DATA | The data is invalid. |
0x800F081F | CBS_E_SOURCE_MISSING | The source for the package or file not found. |
0×80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT | The component store is in an inconsistent state. |
0x800736CC | ERROR_SXS_FILE_HASH_MISMATCH | A component’s file does not match the verification information present in the component manifest. |
0x800705B9 | ERROR_XML_PARSE_ERROR | Unable to parse the requested XML data. |
0×80070246 | ERROR_ILLEGAL_CHARACTER | An invalid character was encountered. |
0x8007370D | ERROR_SXS_IDENTITY_PARSE_ERROR | An identity string is malformed. |
0x8007370B | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME | The name of an attribute in an identity is not within the valid range. |
0x8007370A | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE | The value of an attribute in an identity is not within the valid range. |
0×80070057 | ERROR_INVALID_PARAMETER | The parameter is incorrect. |
0x800B0100 | TRUST_E_NOSIGNATURE | No signature was present in the subject. |
0×80092003 | CRYPT_E_FILE_ERROR | An error occurred while Windows Update reads or writes to a file. |
0x800B0101 | CERT_E_EXPIRED | A required certificate is not within its validity period when verifying against the current system clock or the time stamp in the signed file. |
0x8007371B | ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE | One or more required members of the transaction are not present. |
0×80070490 | ERROR_NOT_FOUND | Windows could not search for new updates. |
В Windows 8 и Windows Server 2012 функционал, аналогичный утилите CheckSUR, уже встроен в систему и называется Inbox Corruption Repair (встроенное восстановление компонентов). Встроенное восстановление компонентов может работает в двух режимах: фоновом и ручном . Фоновое восстановление автоматически запускается в случае появления ошибок при попытке установить обновление Windows Update. Windows в этом случае автоматически пытается исправить поврежденный компонент и переустановить пакет Windows Update. В том случае, если автоматическое восстановление не может самостоятельно исправить проблему, администратор может исправить ошибки вручную, восстановив работоспособное состояния хранилища компонентов. Сделать это можно с помощью утилиты обслуживания образа DISM (команда Dism /Online /Cleanup-Image )или с помощью Powershell (командлет Repair-WindowsImage).
Чтобы проверить состояние хранилища компонентов, откройте командную строку с повышенными привилегиями и выполните:
Dism /Online /Cleanup-Image /CheckHealth
Советы .
- DISM в отличие от большинства утилит Windows чувствительна к регистру символов.
- Команда Dism /Cleanup-Image сохраняет логи в каталогах C:\Windows\Logs\CBS\CBS.log и C:\Windows\Logs\DISM\dism.log
Аналогичная команда Powershell:
Repair-WindowsImage -Online -CheckHealth
Проверка CheckHealth займет несколько минут. Как вы видите, текущий статус хранилища компонентов в образе – Healthy (Здоровый), т.е. восстановление не требуется.
В том случае, если будут обнаружены какие-то проблемы или ошибки, следует запустить процедуру восстановления хранилища командой:
Dism.exe /Online /Cleanup-Image /Restorehealth
Аналогичная Powershell команда:
Repair-WindowsImage -Online -RestoreHealth
В данном примере восстановление системных файлов прошло успешно:
The restore operation completed successfully. The component store corruption was repaired.
В том случае, если система самостоятельно не смогла восстановить некоторые компоненты в хранилище, вам может понадобится дистрибутив (установочный диск) Windows 8. Вставьте данный диск в привод или . Допустим, диску с дистрибутивом назначена буква E. Получим список доступных версий Windows 8 на диске с помощью команды PoSH:
Get-WindowsImage -ImagePath E:\sources\install.wim
В данном примере, мы видим, что на диске имеется только один образ (Windows 8 Pro) с индексом 1 (Index: 1).
Следующая команда запустит восстановление хранилища с восстановлением повреждённых компонентов из оригинального образа Windows 8:
Repair-WindowsImage -Online -RestoreHealth -Source G:\sources\install.wim:1
После завершения восстановления удостоверьтесь, что хранилище компонентов находится в работоспособном состоянии (статус: Healthy)
Следующий (не всегда обязательный этап) – проверка целостности системных файлов с помощью команды:
Sfc /scannow
Совет . Если к восстановлению хранилища компонентов вы прибегли из-за проблем с установкой обновлений Windows, перезапустите службу Windows Update и сбросьте локальных кэш обновлений. Для этого в командной строке последовательно выполните следующие команды:
Net stop wuauserv net stop bits net stop cryptsvc ren %systemroot%\SoftwareDistribution oldSD ren %systemroot%\System32\catroot2 oldCat2 net start cryptsvc net start bits net start wuauserv
Всякий раз, когда что-то идет не так с компьютером или ноутбуком, есть ряд инструментов для устранения неполадок, которые вы можете выполнить, чтобы попытаться устранить проблему. В Windows 10/8/7 есть несколько встроенных команд, которые можно использовать для проверки и восстановления поврежденных системных файлов, которые со временем вызывают проблемы при изменении. Одним из способов устранения неполадок, связанных с Windows, является проверка системы и восстановление системных файлов. Это может помочь во всех типах проблем, таких как медленная система, синий экран смерти, внезапные сбои питания и сбои системы.
Рассмотрим, как запустить средство проверки системных файлов в Windows с помощью командной строки CMD и PowerShell , таких команд как sfc /scannow и инструмента DISM. Хочу заметить, что для обновления Anniversary Update Windows 10, будет лучше использовать методы именно с PowerShell.
Проверка и Восстановление системных файлов через CMD
Средство проверки системных файлов сканирует ваш компьютер на предмет любого повреждения или изменений в системных файлах, которые в противном случае могли бы помешать нормальной работе вашего ПК. Оттуда он заменяет файл правильной версией, чтобы обеспечить бесперебойную работу. С помощью командной строки можно попытаться сканировать и восстановить системные файлы поздних операционных систем, как Windows 10/8/7 / Vista. Разберем две команды sfc /scannow и DISM с помощью CMD.
1.
- Запустите командную строку (CMD) от имени администратора. Нажмите "поиск" и напишите просто "cmd" или "командная строка", далее по ней правой кнопкой мыши и запуск от имени админа.
- Задайте команду sfc /scannow и дождитесь окончания процесса.
Примечание: После сканирования вашей системы будет выдан один из трех результатов:
- Ошибок системных файлов не будет.
- Будут ошибки системных файлов и Windows восстановит их автоматически.
- Windows обнаружила ошибки, но не может восстановить некоторые из них.
Если у вас показывает вариант 3, что ошибка обнаружена и система не может восстановить, то и проделайте заново процедуру. Советую отключить шифрование и , если на момент проверки они имеются. Ничего не получилось? Двигаемся ниже.
2. (DISM)
Если вышеуказанное не работает в безопасном режиме, есть один последний способ проверить повреждение в системных файлах и исправить их. Используем инструмент Deployment Image and Service Management (DISM). Команда работает с системами Windows 8/8.1/10. Откройте обратно и используйте следующую команду:
Процесс может занять длительное время с зависанием процентной шкалы. Закончив работу, перезагрузите компьютер и запустите обратно sfc /scannow, чтобы убедиться, что ошибок нет или ошибка пропала.
Проверка и Восстановление системных файлов через PowerShell
Мы будем использовать Windows PowerShell, чтобы показать, как использовать службу обслуживания и управления DISM для сканирования и исправления поврежденных системных файлов в Windows 10. Этот способ будет более эффективный для обновления Anniversary windows 10, чем командная строка.
1. Использование инструмента System File Checker (SFC)
- Запустите PowerShell от имени администратора. Нажмите "поиск" и наберите windows powershell, после нажмите правой кнопкой мыши и выберите от имени админа.
- Задайте в окне PowerShell команду sfc /scannow. Если сканирование обнаружит какие-либо проблемы, Windows попытается их исправить. Если Windows не сможет их исправить, он предупредит вас, что необходимы дальнейшие исследования и действия. Двигайтесь ниже, если обнаружены ошибки.
2. Использование инструмента Deployment Image and Service Management (DISM)
Сканирование DISM обнаруживает поврежденные системные файлы и Windows попытается исправить их, и даст вам отчет о ходе работы в конце. Если Windows не сможет найти файлы, необходимые для восстановления поврежденных системных файлов, вам также будет предоставлена информация о том, что делать дальше, со ссылкой на веб-сайт Microsoft и варианты устранения неполадок. Задайте ниже команду в окно PowerShell.
DISM /ONLINE /CLEANUP-IMAGE /RESTOREHEALTH
Если DISM все исправил или не выявил ошибки, то перезагрузите ноутбук, компьютер и запустите для проверки обратно sfc /scannow.
При работе на операционной системе Windows 10, да и любой другой может случится всякое. Например, во время работы вы замечаете жуткие тормоза. Возникает мысль, что поработал вирус или вирусы. При проверке антивирусом, есть вероятность найти вирусы, а когда вы их очистите, то не факт, что произойдут какие-то изменения, так как они успели напортачить.
Итак, для проверки файлов Windows на целостность можно запустить утилиту sfc /scannow из командной строки и, если появится сообщение, что «программа защиты ресурсов Windows обнаружила повреждённые файлы, но не может восстановить некоторые из них» , то эта статья поможет вам избавиться от этой ошибки. При наличии доступа в интернет, вы можете воспользоваться статьей: .
Когда вы сканируете систему на целостность компонентов, то при обнаружении повреждённых файлов происходит их замена на рабочие из . Может быть данная папка удалена или файлы, находящиеся в ней, повреждены, тогда вы увидите сообщение, что «программа защиты ресурсов обнаружила поврежденные файлы…» .
Как восстановить поврежденное хранилище компонентов при помощи Power Shell
Прочитайте , в которой я восстанавливал хранилище компонентов, используя следующую команду:
DISM /Online /Cleanup-Image /RestoreHealth |
Чтобы она сработала необходимо подключение к сети, так как команда связывается с центром обновлений и загружает оттуда необходимые файлы. Возможно, что эта команда тоже не поможет, тогда воспользуемся более широким по возможностям инструментом – .
Нажмите на значок поиска на панели задач, а потом введите фразу «PowerShell» , из результатов выбираем пункт «Windows PowerShell» , нажимаем по нему правой кнопкой мыши и щелкаем по варианту «Запустить от имени администратора» .
В открывшемся окошке вводим такую команду:
Repair-WindowsImage -Online -RestoreHealth |
Чтобы все сработало также понадобится интернет. Необходимо немного подождать, когда файлы скачаются, после чего хранилище компонентов будет иметь работоспособное состояние и система не будет доводить вас ошибками.
Если все прошло успешно, то в результатах вы должны заметить строчку:
ImageHealth State: Healthy
Она означает, что все восстановлено.
Что делать при отсутствии интернета для восстановления хранилища компонентов?
В этом случае понадобится загрузочный диск, либо флешка с Windows 10. Подойдет практически любой образ, желательно, чтобы была десятка. Можно загрузить с сайта Microsoft.
После скачивания образа щелкаем по нему два раза, создав таким образом виртуальный дисковод. Посмотрите, какая у него буква в проводнике, например, может быть F .
Снова возвращаемся в PowerShell и вводим следующую команду:
Dism /Get-WimInfo /WimFile:R:\sources\install.wim
, где R:
буква созданного образом привода, с установочными файлами Windows 10. Данная команда определит, что за образ системы находится в виртуальном дисководе.
Repair-WindowsImage -Online -RestoreHealth -Source R:\sources\install.wim:1 |
Буква R – это наш привод, а цифра 1 – индекс образа из первой команды.
После восстановления попробуйте снова запустить проверку целостности системных файлов — sfc /scannow, скорее всего вы увидите сообщение, что все поврежденное было успешно восстановлено.
Можно ли восстановить полностью разрушенное\удаленное хранилище, БЕЗ переустановки всей системы?
У клиента забился весь системный диск и показалось, что WinSxS занимает много места, и была удалена.
На самом деле, в свежи установленной Win10, удаление 5,5 ГБ WinSxS освобождает только ~380 МБ
. Все остальное жесткие ссылки.
Что же тогда там храниться?
і
Хотел восстановить путем установки с install.wim образа, и выбором "Обновить с сохранение файлов
", но далее предложение перезапустить комп и продолжить восстановленик. А что продолжать - точки возврата и образы системы не создавались.
Т.о. НЕТ возможности восстановить путем установки с диска
?
Тогда заменил весь WinSxS из boot.wim и Win10 нормально стал запускаться. Стало интересно, и проверил: в 32bit Win10 все запускается, но в 64bit Win10 системе не запускаются 32bit приложения.
Но надо все же восстановить хранилище полностью. Тогда наткнулся на ваш сайт.
Кстати, в восстанавливаемом мной Win10 вообще нет powershell ни в Поиске, ни в Пуск_Меню, ни в Панели_Управления, хотя есть директория \Program Files\WindowsPowerShell но там ничего не удалось запустить. Думал найти и установить powershel,l но потратив 30 минут находил только руководства, на чем и прекратил тратить время.
Тогда просто в окне Аднин.cmd вставил powershell и получил его. У вас пропущен этот простой способ открытия powershell
Пытался пока без успеха восстановить хранилище полностью, и в работающей системы с урезанным WinSxS:
------
>
>
Cистема Dism
Версия: 10.0.10240.16384
Версия образа: 10.0.10240.16384
[==========================100.0%==========================]
Ошибка: 0x800f081f
Не удалось найти исходные файлы.
Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра "Источник".
------
И в powershell
>
строка:1 знак:1
+ Repair-WindowsImage -Online -RestoreHealth
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---------------
и с других работающих систем:
>
Repair-WindowsImage: Системе не удается найти указанный путь.
строка:1 знак:1
+ Repair-WindowsImage -Path e: -RestoreHealth -Source R:\sources\instal ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (:) , COMException
+ FullyQualifiedErrorId: Microsoft.Dism.Commands.RepairWindowsImageCommand
с тем же успехом. Может что не так делаю?
Читал выше о таких же отказах, и тоже хочется докопаться до истины. Для этого установил Win10 в 12ГБ vhd образ - одну копию запорю, берусь за другую.
Кстати, может посоветуете
как и чем сравнить скорость системы с vhd образа и с диска.
Имею дело только с пиратками, но все описанное нормально проходило на других Win10. Даже например, с ru_windows_10_enterprise_2015_ltsb_x64 на вчера скачанную с центра обновления Win10ProRU и обратно. Т.ч. проблема не в пиратках, а где-то в нарушенных файлах идентификации.
И как все же правильно в таком случае: "ISO-образ винды задействуйте"?
P.S. После копирования в разрушенную Win10 всей WinSxS с установленного в vhd со вчера скачанного 64bit Win10 образа - все запускается и работает.
Но приведенные выше проверки НЕ работают
.
Почитал еще ваши полезнавательные статьи, но так пока и не получилось исправить до конца систему с "тронутой" WinSxS. Видно что-то меняется в настройках.
C работающей или с другой ОС:
>sfc /scannow
>sfc /scannow /offbootdir=C:\w10\ /offwindir=E:\Windows
Защите ресурсов Windows не удается запустить службу восстановления
.
>Dism /Online /Cleanup-Image /RestoreHealth
>Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:R:\sources\install.wim:1 /limitaccess
>Repair-WindowsImage -Online -RestoreHealth
>Repair-WindowsImage -Path e: -RestoreHealth -Source R:\sources\install.wim -Debug -Verbose
>Repair-WindowsImage -Path e: -RestoreHealth -Source C:\w10\ -Debug -Verbose
ПОДРОБНО: Версия 10.0.0.0 командлетов PowerShell системы Dism
Repair-WindowsImage: Системе не удается найти указанный путь.
строка:1 знак:1
+ Repair-WindowsImage -Path e: -RestoreHealth -Source C:\w10\ -Debug -V ...
Других комбинаций пока не вижу.
Так можно ли восстановить разрушенное\удаленное хранилище или путем восстановления с диска установки, или командами?
И еще может знаете - для образа *.vhd, diskmgmt без выбора создает Block_size 2МВ, сектор 512, а BOOTICE.exe для *.vhd Block_size 2МВ, сектор 512 (или 4096), а для *.vhdx предлагает Block_size 32МВ, сектор 512 (или 4096).
С сектором понятно - на каждом файле теряется 1/2 размера сектора, но меньше секторов (больших) легче обрабатывать.
Но как влияет и какой оптимальный Block_size для образов под Windows-10 размером 10-25 ГБ?
Заранее благодарен за любую информацию.
P.S.S. При первой отправке у меня выдернулся сетевой кабель и отправка зависла. Вставил кабель, посмотрел - моего поста не было, Тогда повторил. А сейчас добавляю, и вижу 2 поста. Уберите пожалуйста первый.
После добавления полной WinSxS, powershell появился в Поиске