Устранение проблем с повреждением регистрации обновлений программного обеспечения MSI

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

Область применения: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер базы знаний: 971187

Симптомы

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

Не удалось найти локальное исправление "". Ищете его на его источнике.
...
MainEngineThread возвращает 1612

При поиске в реестре может обнаружиться, что регистрация кэша обновлений программного обеспечения отсутствует в следующем подразделе реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>

Разрешение

Важно!

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

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

  1. Убедитесь, что продукт затронут.

    Для этого выполните следующие действия:

    1. Найдите регистрацию обновления программного обеспечения продукта, открыв следующий подраздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
      В этом подразделе будет указан подраздел для каждого обновления программного обеспечения, примененного к продукту.

    2. Для каждого подраздела в следующем формате выполните следующий шаг: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

      Убедитесь, что существует следующий подраздел:

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Если подраздел отсутствует, затрагивается продукт. Перейдите к шагу 2.

      Если подраздел существует, убедитесь, что строковое значение LocalPackage задано правильно и что пакет, на который ссылается строковое значение LocalPackage, также существует.

      1. Если отсутствует строковое значение LocalPackage или пакет, на который ссылается ссылка, это влияет на продукт. Перейдите к шагу 2.
      2. Если указанный пакет существует и никаких дополнительных действий не требуется.
  2. Повторно создайте сведения о реестре кэша обновлений программного обеспечения. Для этого выполните следующие действия:

    1. Найдите в папке %windir%\installer\*.msp обновление программного обеспечения, которое вы пытались установить. Убедитесь, что обновление программного обеспечения имеет правильный глобальный уникальный идентификатор (GUID) исправления в Stream сводной информации и предназначено для правильных GUID продукта.

      Примечание.

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

    2. Создайте следующий подраздел: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Примечание.

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

    3. Создайте строковое значение LocalPackage в подразделе реестра, созданном на шаге 2. Убедитесь, что для строкового значения LocalPackage задан путь к обновлению программного обеспечения.

  3. Удалите оставшиеся ссылки на обновления программного обеспечения. Для этого выполните следующие действия:

    1. Откройте следующий подраздел, а затем удалите <PatchSQUID> из значения "AllPatches" multi-sz: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches

    2. Удалите следующий подраздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

    3. Удалите следующий подраздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Примечание.

      Если этот подраздел отсутствует, пропустите этот шаг.

    4. Если продукт был установлен на компьютере, выполните следующие действия:

      1. Откройте следующий подраздел: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches

        1. Если строковое <PatchSQUID> значение присутствует, удалите его.
        2. Если строковое <PatchSQUID> значение присутствует в значении "Patches" Multi-sz, удалите <PatchSQUID> строковое значение.
      2. Если присутствует следующий подраздел реестра, удалите его: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>

    5. Если продукт был установлен для каждого пользователя неуправляемо:

      1. Откройте следующий подраздел реестра: HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches

        1. Если строковое <PatchSQUID> значение присутствует, удалите его.
        2. <PatchSQUID> Если из значения "Patches" Multi-sz присутствует, удалите его.
      2. Если присутствует следующий подраздел реестра, удалите его: HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>

    6. Если продукт был установлен для каждого пользователя:

      1. Откройте следующий подраздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches

        1. Если строковое <PatchSQUID> значение присутствует, удалите его.
        2. <PatchSQUID> Если из значения "Patches" Multi-sz присутствует, удалите его.
      2. Если присутствует следующий подраздел реестра, удалите его: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>

Ссылки

Эта статья не посвящена проблемам, возникшим в клиентский компонент Центра обновления Windows или Центре обновления Майкрософт.