Восстановление через повер шелл виндовс 7. SFC и DISM: Проверка и Восстановление системных файлов в Windows. Что делать при отсутствии интернета для восстановления хранилища компонентов

Всякий раз, когда что-то идет не так с компьютером или ноутбуком, есть ряд инструментов для устранения неполадок, которые вы можете выполнить, чтобы попытаться устранить проблему. В 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.


Можно ли восстановить полностью разрушенное\удаленное хранилище, БЕЗ переустановки всей системы?

У клиента забился весь системный диск и показалось, что 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 появился в Поиске

Е сли вы часто устанавливаете программное обеспечение или применяете твики , будет неплохо, если перед каждым таким вмешательством создавать системную контрольную точку восстановления . Windows 10 это особо касается, так как в десятой версии точки отката создаются реже, чем в предыдущих версиях. Создать точку восстановления можно вручную из апплета панели управления Система -> Защита системы , также для этих целей можно воспользоваться консолью PowerShell .

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

Вот, как это делается.

Убедившись, что функция восстановления системы с помощью контрольных точек включена.

Откройте консоль PowerShell от имени администратора и выполните в ней такую команду:

Checkpoint-Computer -Descriрtion "Моя точка восстановления" -RestorePointType "APPLICATION_INSTALL"

Аргумент -Descriрtion задает текстовое описание контрольной точки, -RestorePointType - ее тип. Он может принимать следующие значения:

MODIFY_SETTINGS - изменение настроек.
DEVICE_DRIVER_INSTALL - установка драйвера.
APPLICATION_INSTALL - установка приложения (используется по умолчанию) .
APPLICATION_UNINSTALL - удаление приложения.
CANCELLED_OPERATION - отмена действия.

Какой из ключей будет вами использован, особого значения не имеет. Обратите, однако, внимание, что этим способом можно создать не более одной контрольной точки в сутки.

Чтобы снять это ограничение, откройте командой regedit редактор реестра, разверните ветку HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore , создайте в последнем подразделе новый 32 -битный параметр типа DWORD с именем SystemRestorePointCrеаtionFrequency и установите в качестве его значения количество минут, задающих интервал между созданием точек восстановления.

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

Возвращаясь к технологии хранилища компонентов (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




Top