Восстановление windows 10 через powershell. SFC и DISM: Проверка и Восстановление системных файлов в Windows. Восстановление хранилища системных компонентов: PowerShell

Проверка целостности системных файлов 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

Советы .

  1. DISM в отличие от большинства утилит Windows чувствительна к регистру символов.
  2. Команда 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 появился в Поиске