Интернет. Настройки. Тарифы. Телефон. Услуги

Восстановление хранилища системных компонентов powershell. Восстановление хранилища системных компонентов: установочный диск Windows

Системные неполадки неразрывно связаны с нашей цифровой жизнью и к ним всегда нужно быть готовыми. Многие пользователи стремятся предугадать и предупредить подобные сбои, устанавливая всевозможные утилиты, созданные для исправления ошибок . Однако, к сожалению, даже подобная предусмотрительность не всегда помогает эффективно решить вопрос.

В данной статье мы рассмотрим ситуацию при которой на компьютере повреждается хранилище системных компонентов, расположенное в папке WinSxS .

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

Диагностика DSIM

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

DISM /Online /Cleanup-Image /CheckHealth

Полезные статьи


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

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

Как быть в этом случае? Достаточно лишь заменить параметр CheckHealth на ScanHealth , что позволит провести глубокое сканирование хранилища. Такая проверка займет несколько больше времени.

Введите в командной строке следующую команду:

DISM /Online /Cleanup-Image /ScanHealth

Восстановление системного хранилища

Если ошибки не были обнаружены — поздравляем! Это говорит о том, что хранилище WinSxS не было повреждено и не нуждается в исправлении. Если же системные сбои не перестают вас донимать, первопричину следует искать в другом месте.

Обнаружились ошибки? Например:

  • Хранилище компонентов подлежит восстановлению.
  • Ошибка: 1726 Сбой при удаленном вызове процедуры.
  • Ошибка 1910 Не найден указанный источник экспорта объекта.

Эти сообщения говорят нам о том, что хранилище тем или иным образом повреждено и нуждается в восстановлении.

Чтобы исправить возникшую неполадку, введите в командной строке следующую команду:

DISM /Online /Cleanup-Image /RestoreHealth

Восстановление хранилища компонентов при помощи загрузочной флешки

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

  • 0x800f0906 Не удалось скачать исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра “Источник”.
  • 0x800f081f Не удалось найти исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра “Источник”.
  • 0x800f0950 Сбой DISM. Операция не выполнена.

Чтобы выйти из сложившейся ситуации, вам понадобится загрузочная флешка или диск с ISO-образом установленной операционной системы Windows 10.

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

1. Определите букву загрузочного устройства в разделе Мой компьютер (Этот компьютер) .

В нашем случае это диск F: .

2. Двойным щелчком откройте содержимое папки и перейдите в sources .

3. Найдите файл install .

Он может быть в формате .ESD или .WIM . Запомните или запишите эти данные, в дальнейшем они пригодятся.

На данном этапе нам нужно узнать индексацию файла образа системы. Откройте командную строку от имени администратора и введите следующую команду:

DISM /Get-WimInfo /WimFile:F:\Sources\install.esd

Внимание!
Укажите корректный путь к диску, на котором хранится ваша Windows. Окончание (формат инсталлятора) введите соответственно тому, что написано напротив вашего файла. Он может быть с расширением .WIM .

Теперь нам известен индекс операционной системы.

5. Пришло время перейти непосредственно к восстановлению операционной системы! Введите в командной строке команду:

DISM /Online /Cleanup-Image /RestoreHealth /Source:ESD:F:\Sources\install.esd:1 /LimitAccess

F: — буква диска, на который был установлен ISO-образ операционной системы.

install.esd:1 — индекс операционной системы.

LimitAccess — создание запрета на доступ к центру обновления Windows.

Теперь вы можете быть спокойны за свое хранилище системных компонентов. Оно восстановлено и готово к дальнейшей работе. Однако не торопитесь покидать нас. Осталось выполнить последнюю проверку — проверку целостности системных файлов.

Откройте командную строку от имени администратора и введите команду:

sfc /scannow

Теперь введите команду shutdown /r /t 0 и перезапустите компьютер, чтобы применить и сохранить внесенные изменения.

На всякий случай, если потребуется восстановление других стертых файлов и папок в системе Windows, вам помогут инструменты Starus Recovery .

Возвращаясь к технологии хранилища компонентов (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 7. Поводом для сегодняшний записи стал редчайший случай — Microsoft добавила новую возможность в старую ОС задним числом!

Читатели со стажем сразу вспомнят, как через четыре года после выхода Windows 7 в ней появилась возможность очищать папку WinSXS . Тогда из Windows 8+ перенесли часть функций DISM. Прошло два года, и в Windows 7 переселилась еще одна технология, связанная с хранилищем компонентов.

Сегодня в программе

Возвращаясь к напечатанному

Из нее вы узнаете:

  • основы системы обслуживания Windows
  • действия для восстановления компонентов в Windows 8+
  • разницу между старым CheckSUR в Windows 7 и встроенным восстановлением в Windows 8+

Что нового в Windows 7:)

Microsoft опубликовала статью базы знаний KB2966583 , из которой можно скачать пакет обновления. После его установки и перезагрузки Windows 7 получает фактически такую же возможность восстановления компонентов, как Windows 8+.

Как и в более новых ОС, восстановление реализовано с помощью DISM. Приведенная ниже команда запускает процесс проверки хранилища и восстановления поврежденных компонентов.

DISM /Online /Cleanup-Image /ScanHealth

Однако в Windows 7 есть ряд особенностей:

  • здесь нет ключей /CheckHealth и /RestoreHealth , и всю работу выполняет ключ /ScanHealth
  • команду можно выполнять только на работающей системе, т.е. восстановление отключенных образов не реализовано
  • появилась возможность проверки и восстановления компонентов Internet Explorer, которой не было в старом CheckSUR

Результат работы команды нужно смотреть в журнале, как и прежде сохраняемом по адресу \Windows\logs\CBS\checksur.log

================================= Checking System Update Readiness. Binary Version 6.1.7601.18489 2015-07-27 12:32 Checking Windows Servicing Packages Checking Package Manifests and Catalogs Checking Package Watchlist Checking Component Watchlist Checking Packages Checking Component Store Summary: Seconds executed: 149 No errors detected

У меня на ВМ повреждений не обнаружилось, но вы можете проверить у себя.

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

Дискуссия и опрос

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

Впрочем, я думаю, что их будет немного, поэтому хочу развернуть дискуссию в другую плоскость. До официального выпуска Windows 10 осталась всего пара дней. Для инсайдеров и энтузиастов там никаких сюрпризов нет – мы следим за ходом разработки ОС уже восемь месяцев. Понятно, что практически все обладатели Windows 8.1 обновятся до Windows 10.

Поэтому меня особенно интересует, как много людей готовы перейти на Windows 10 с Windows7 и более ранних ОС.

Я уже проводил опрос на тему скорости обновления до Windows 10, но там не было расклада по вашей текущей системе, и сейчас мы его увидим. Если Windows 10 IP является вашей основной текущей системой, укажите ту, которая была установлена до нее.

В комментариях напишите, почему вы перейдете или не перейдете на Windows 10! Не забудьте указать, как долго и каким образом вы пользовались предварительной версией Windows 10.

При работе на операционной системе 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, скорее всего вы увидите сообщение, что все поврежденное было успешно восстановлено.