Донецкий техникум промышленной автоматики

Як виправити помилки при установці оновлень Windows за допомогою вбудованого відновлення компонентів - Вадим Стеркиной

  1. Усунення помилок Windows Update, викликаних пошкодженням сховища компонентів
  2. Етап 1 - відновлення пошкодженого сховища компонентів
  3. Відновлення без установочного диска
  4. Відновлення за допомогою інсталяційного диска
  5. Етап 2 - перевірка цілісності системних файлів
  6. Етап 3 - установка поновлення
  7. Що таке обслуговування Windows і навіщо воно потрібне
  8. Переваги вбудованого відновлення компонентів Windows
  9. Windows Vista і Windows 7
  10. Windows 8 і новіше
  11. Консольні кошти для відновлення компонентів
  12. Мета перевірки (діюча система і образи)
  13. Перевірка і відновлення сховища
  14. Джерело компонентів для відновлення
  15. Приклади команд PowerShell
  16. Результати перевірки і відновлення

Напередодні надходження Windows 8 в продаж Microsoft випустила велике кумулятивне оновлення KB2756872 , Чого ніколи раніше не робила для клієнтських операційних систем. Однак при установці поновлення мене чекав неприємний сюрприз - помилка 80073712.

збільшити малюнок
збільшити малюнок

Сьогодні я розповім про те, як перемогти цю та ряд інших помилок при установці оновлень Windows за допомогою нової можливості обслуговування - вбудованого відновлення компонентів (in-box corruption repair).

Ця запис відкриває серію статей про нововведення в обслуговуванні Windows. І немає, воно не має нічого спільного з автоматичним обслуговуванням за допомогою планувальника. Спочатку я покажу, як вирішив проблему з установкою оновлення, а потім розповім про технологію.

Усунення помилок Windows Update, викликаних пошкодженням сховища компонентів

У довідці попередніх ОС Microsoft для помилки 80073712 є опис , З якого випливає, що причиною є пошкодження сховища компонентів. Для Windows Vista і Windows 7 була випущена утиліта System Update Readiness Tool (CheckSUR), покликана усунути цілий ряд помилок Windows Update.

Список виправляє помилок

80070002 ERROR_FILE_NOT_FOUND 8007000D ERROR_INVALID_DATA 800F081F CBS_E_SOURCE_MISSING 80073712 ERROR_SXS_COMPONENT_STORE_CORRUPT 800736CC ERROR_SXS_FILE_HASH_MISMATCH 800705B9 ERROR_XML_PARSE_ERROR 80070246 ERROR_ILLEGAL_CHARACTER 8007370D ERROR_SXS_IDENTITY_PARSE_ERROR 8007370B ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME 8007370A ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE 80070057 ERROR_INVALID_PARAMETER 800B0100 TRUST_E_NOSIGNATURE 80092003 CRYPT_E_FILE_ERROR 800B0101 CERT_E_EXPIRED 8007371B ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE 80070490 ERROR_NOT_FOUND

Для виправлення цих помилок в Windows 8 і більше нових ОС утиліта CheckSUR не потрібна, тому що все необхідне вже вбудовано в систему! Ви можете відновити пошкоджені компоненти за допомогою командлета PowerShell (рекомендований спосіб) або утиліти DISM.exe.

Upd. 28-Jul-2015. Microsoft випустила спеціальне оновлення , Яке привносить в Windows 7 можливість вбудованого відновлення компонентів по аналогії з Windows 8 +.

Етап 1 - відновлення пошкодженого сховища компонентів

Відновлення можна виконати без установочного диска Windows, але в деяких випадках він може вам знадобитися.

Відновлення без установочного диска

В цьому випадку використовуються файли сховища на локальному диску і Windows Update.

запустіть PowerShell від імені адміністратора і виконайте команду:

Repair-WindowsImage -Online -RestoreHealth

Альтернативно, ви можете виконати в командному рядку, запущеної з правами адміністратора, команду:

Dism / Online / Cleanup-Image / RestoreHealth

Тривалість процедури відновлення залежить від конфігурації ПК і ступеня пошкодження сховища. У мене вона зайняла близько 7 хвилин, а її результат ви бачите на малюнку нижче.

збільшити малюнок
збільшити малюнок

Стан сховища компонентів позначається параметром Image Health State. У нього Healthy означає, що зі сховищем компонентів все нормально. Для подальшої діагностики переходите до перевірки цілісності системних файлів трохи нижче ↓ Якщо ж пошкодження сховище не виправлено, потрібно спробувати зробити це за допомогою інсталяційного диска.

Відновлення за допомогою інсталяційного диска

Коли системі не вдається відновити будь-які компоненти, вам може допомогти оригінальний інсталяційний диск.

  1. Клацніть правою кнопкою миші по ISO-образу і виберіть в меню Підключити. Зверніть увагу на букву диска, яку отримав підключений образ.
  2. У PowerShell виконайте команду: Repair-WindowsImage -Online -RestoreHealth -Source: WIM: Е: \ sources \ install.wim: 1

    Тут буква «E» відповідає букві підключеного образу, а цифра «1» - індексу видання в образі (в прикладі використовується образ Windows 8 Enterprise з єдиним виданням).

  3. Після закінчення процедури переконайтеся, що сховище компонентів в порядку (Healthy).

Етап 2 - перевірка цілісності системних файлів

Строго кажучи, цей етап не має відношення до відновлення компонентів. Однак технічна підтримка Microsoft рекомендує після перевірки цілісності сховища компонентів також перевірити і цілісність системних файлів. Для цього в командному рядку, запущеної від імені адміністратора, виконайте команду:

sfc / scannow

У мене один з файлів був пошкоджений, і утиліта SFC успішно відновила його.

збільшити малюнок
збільшити малюнок

Випадки, коли системі не вдалося відновити будь-які файли, виходять за рамки цієї статті (я розберу їх іншим разом).

Етап 3 - установка поновлення

Отже, дві команди відновили цілісність сховища компонентів і системних файлів. Саме час спробувати встановити оновлення заново.

збільшити малюнок
збільшити малюнок

Як бачите, на цей раз у мене все спрацювало!

Що таке обслуговування Windows і навіщо воно потрібне

розповідь винесено в окрему статтю .

Переваги вбудованого відновлення компонентів Windows

Давайте порівняємо ключові моменти відновлення компонентів в різних операційних системах.

Windows Vista і Windows 7

утиліта CheckSUR являє собою набір корисних файлів , Який регулярно оновлюється по мірі виходу нових виправлень. Таким чином, при виникненні проблем потрібно завантажувати утиліту заново, а між тим, вересневий пакет важить 350 Мб.

Але навіть при такому розмірі в пакет не входять файли для всіх виправлень, випущених Microsoft (припущу, що файлів необов'язкових оновлень там немає). Це означає, що утиліта не може усунути пошкодження деяких компонентів. І хоча обхідний шлях існує , Він є милицею, що вимагає додаткових рухів тіла.

Після запуску утиліта розпаковує вміст пакета в папку \ Windows \ CheckSUR \. Оскільки більшість файлів в пакеті має дуже невеликий розмір, цей процес виходить тривалим і займає до 75-80% відсотків від загального часу роботи утиліти. Час, що залишився йде на перевірку компонентів і створення журналу.

І все це робиться лише заради того, щоб відновити маніфести і дати можливість системі оновитися ...

Windows 8 і новіше

Пошкодження, як правило, означає пропажу маніфесту або каталогу. На відміну від CheckSUR, вбудована функція системи здатна відновлювати не тільки маніфести, а й всі інші складові компонентів. Це одне з найважливіших переваг!

Крім того:

  1. Всі необхідні компоненти автоматично завантажуються з Windows Update. З одного боку - це найактуальніший джерело компонентів, а з іншого - від вас не потрібно додаткових дій.
  2. На додаток до Windows Update або замість нього можна вказати кілька джерел компонентів, перераховуючи WIM-образи в якості параметрів командного рядка. Саме такий шлях я описав вище для тих, кому не вдасться обійтися тільки Windows Update. Наприклад, якщо з г-збірки вирізані необхідні компоненти, поєднання оригінального дистрибутива з Windows Update має вирішити проблему.
  3. Windows періодично перевіряє стан компонентів у фоновому режимі і в разі неполадок позначає пошкодження спеціальним прапором. Завдяки цьому, за допомогою консольних інструментів можна виконати моментальну діагностику стану сховища компонентів.

Консольні кошти для відновлення компонентів

Починаючи з Windows 8, управління обслуговуванням можна здійснювати не тільки за допомогою утиліти DISM.exe, але і командлетів PowerShell, причому другий спосіб є рекомендованим.

Я не любитель дублювати довідку, але російською мовою її поки немає. Тому я покажу вам основні можливості командлет Repair-WindowsImage, а для параметра Cleanup-Image утиліти DISM.exe обмежуся посиланням на документацію .

Мета перевірки (діюча система і образи)

Метою перевірки може бути як встановлена ​​система, так і образ в форматі WIM або VHD.

-Online

Перевіряє працюючу систему.

-Path

Перевіряє підключений автономний образ за вказаною після параметра шляху.

Перевірка і відновлення сховища

Для визначення стану і відновлення компонентів в Командлети Repair-WindowsImage передбачені три параметри, які виконують перевірку сховища. Результатом сканування може бути:

  • відсутність пошкоджень (Healthy)
  • наявність пошкоджень, які можна відновити (Repairable)
  • наявність пошкоджень, які не можна відновити (Not repairable)

Однак функції параметрів відрізняються.

-CheckHealth

Моментально перевіряє, чи присутній в системному реєстрі маркер, що позначає ушкодження. Цей маркер може з'явитися в процесі роботи системи обслуговування.

-ScanHealth

Перевіряє сховище на предмет пошкоджень. Ця операція може тривати довше, ніж проста перевірка маркера.

-RestoreHealth

Перевіряє сховище на предмет пошкоджень і виконує їх відновлення. Ця операція є найтривалішою з трьох.

Джерело компонентів для відновлення

Щоб відновити компоненти, їх потрібно звідкись взяти. Коли джерело не вказано, при перевірці автоматично використовується локальне сховище компонентів і Windows Update.

Цей момент ніде не задокументовано, і ви повинні розуміти, що при перевірці автономного способу Windows з-під іншого видання або версії Windows джерело потрібно вказувати обов'язково.

В обох випадках ви можете вказувати більше одного джерела і навіть блокувати Windows Update при цьому. Наведені нижче параметри призначені тільки для відновлення, і тому допустимі тільки в зв'язці з -RestoreHealth.

-Source

Як джерело можна використовувати шлях до:

  • працюючій системі, до якої є доступ по мережі
  • автономному образу, причому його попереднє підключення необов'язково

Тут цікава можливість вказати шлях безпосередньо до видання в WIM-образі без його попереднього копіювання на локальний диск і подальшого підключення. Вона є таємним знанням, поки не відбитим в документації;) Це працює завдяки функції автоматичного підключення WIM, реалізованої на останніх стадіях розробки Windows 8.

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

Коли в якості джерела використовується WIM-образ, необхідно вказати тип образу і його індекс:

-Source: WIM: Е: \ sources \ install.wim: 1

-LimitAccess

Блокує доступ до Windows Update під час перевірки.

Приклади команд PowerShell

Я наведу кілька прикладів практичного використання командлет Repair-WindowsImage з різними цілями і джерелами перевірки. Перші два ви вже бачили на початку статті.

Відновлення сховища працюючої системи, використовуючи локальні файли і Windows Update в якості джерела:

Repair-WindowsImage -Online -RestoreHealth

Відновлення сховища працюючої системи, використовуючи Windows Update і WIM-образ як джерела:

Repair-WindowsImage -Online -RestoreHealth -Source: WIM: Е: \ sources \ install.wim: 1

Перевірка сховища автономного VHD-образу. Спочатку він підключається в папку C: \ mount (це відбувається дуже швидко), а потім виконується перевірка.

Mount-Windowsimage -ImagePath C: \ vhd \ Win8.vhd -Index 1 -Path C: \ mount Repair-WindowsImage -Path C: \ mount -ScanHealth

Відновлення сховища автономного VHD-образу, використовуючи в якості джерела WIM-образ. Спочатку VHD підключається в папку, потім виконується відновлення образу, після чого VHD відключається зі збереженням змін.

Mount-Windowsimage -ImagePath C: \ vhd \ Win8.vhd -Index 1 -Path C: \ mount Repair-WindowsImage -Path C: \ mount -RestoreHealth -Source: WIM: Е: \ sources \ install.wim: 1 Dismount- WindowsImage -path C: \ mount -Save

Результати перевірки і відновлення

Крім результатів в консолі ви можете знайти докладний звіт ближче до кінця файлу% WinDir% \ Logs \ DISM \ dism.log

У першій половині наведеного фрагменту видно конкретні компоненти і результат їх відновлення (успіх або невдача), а в другій - зведення про операції, включаючи час її виконання.

Подивитися звіт з журналу DISM

Checking System Update Readiness. (P) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-lpksetup_31bf3856ad364e35_6.2.9200.16384_none_7a23086df63cad13 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_2422e0b40b0ac235 (p) CSI Manifest Corrupt ( Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_2a982e5d65c9a294 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_53ea2a36610cb913 (p) CSI Manifest Corrupt ( Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_879ccd7f3842e229 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_8e2bd9e9b9aeac5f (p) CSI Manifest Corrupt ( Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_c73545896a8993dd Summary: Operation: Detect and Repair Operation result: 0x0 Last Succe ssful Step: Entire operation completes. Total Detected Corruption: 7 CBS Manifest Corruption: 0 CBS Metadata Corruption: 0 CSI Manifest Corruption: 7 CSI Metadata Corruption: 0 CSI Payload Corruption: 0 Total Repaired Corruption: 7 CBS Manifest Repaired: 0 CSI Manifest Repaired: 7 CSI Payload Repaired: 0 CSI Store Metadata refreshed: True Total Operation Time: 221 seconds.

Як бачите, у мене були пошкоджені 7 маніфестів, що відносяться мовною пакету, що і стало перешкодою до встановлення оновлення Windows. Всі пошкодження були виправлені.

Безумовно, цей матеріал не має на увазі моментального практичного застосування, хоча перевірити стан сховища компонентів Windows ви можете прямо зараз. Більш того, за три роки роботи в Windows 7 у мене жодного разу не виникало проблем з установкою оновлень.

Однак помилки Windows Update, пов'язані з пошкодженням сховища, зовсім не рідкість, навіть якщо судити тільки по форуму OSZone. Тому важливо знати, як боротися з ними.

Мені здалося, що частина аудиторії блогу відверто скучила від серії статей про сучасний інтерфейсі Windows 8 і додатків. Звичайно, там все примітивно, ніяких технічних тонкощів, а головне - у деяких людей створюється відчуття, що крім Modern UI в Windows 8 немає нічого нового. Це не так…

Я давно планував серію записів про зміни в обслуговуванні Windows, а виникла проблема з установкою оновлення лише форсувала публікацію, заодно змусивши мене змінити порядок статей в серії.

Вам вистачило технічних тонкощів сьогодні? ;)

Якщо немає, в наступному записі з цієї серії вас чекає не тільки екскурс в історію інструментів обслуговування ОС Microsoft, але і унікальна можливість спробувати себе в ролі пана збирача Windows! Але до цього в блозі з'являться записи на інші теми.

Обговорення завершено.

Вам вистачило технічних тонкощів сьогодні?