Возвращаясь к технологии хранилища компонентов (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 .
Что же делает данная утилита? System Update Readiness Tool проверяет целостность следующих ресурсов:
В том случае, если утилитой 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
Советы .
Аналогичная команда Powershell:
Repair-WindowsImage -Online -CheckHealth
Проверка CheckHealth займет несколько минут. Как вы видите, текущий статус хранилища компонентов в образе – Healthy (Здоровый), т.е. восстановление не требуется.
В том случае, если будут обнаружены какие-то проблемы или ошибки, следует запустить процедуру восстановления хранилища командой:
Dism.exe /Online /Cleanup-Image /Restorehealth
Аналогичная Powershell команда:
Repair-WindowsImage -Online -RestoreHealth
В данном примере восстановление системных файлов прошло успешно:
В том случае, если система самостоятельно не смогла восстановить некоторые компоненты в хранилище, вам может понадобится дистрибутив (установочный диск) Windows 8. Вставьте данный диск в привод или смонтируйте его iso образ . Допустим, диску с дистрибутивом назначена буква E. Получим список доступных версий Windows 8 на диске с помощью команды PoSH:
Get-WindowsImage -ImagePath E:sourcesinstall.wim
В данном примере, мы видим, что на диске имеется только один образ (Windows 8 Pro) с индексом 1 (Index: 1).
Следующая команда запустит восстановление хранилища с восстановлением повреждённых компонентов из оригинального образа Windows 8:
Repair-WindowsImage -Online -RestoreHealth -Source G:sourcesinstall.wim:1
, где 1 – индекс версии образа в дистрибутиве, полученный ранее.
После завершения восстановления удостоверьтесь, что хранилище компонентов находится в работоспособном состоянии (статус: Healthy)
Следующий (не всегда обязательный этап) – проверка целостности системных файлов с помощью команды:
sfc /scannow
net stop wuauserv_x000D__x000D_net stop bits_x000D__x000D_net stop cryptsvc_x000D__x000D_ren %systemroot%SoftwareDistribution oldSD_x000D__x000D_ren %systemroot%System32catroot2 oldCat2_x000D__x000D_net start cryptsvc_x000D__x000D_net start bits_x000D__x000D_net start wuauserv
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…