MSI 소프트웨어 업데이트 등록 손상 문제를 해결하는 방법

이 문서에서는 소프트웨어 업데이트를 설치한 후 특정 제품에 대한 복구 또는 제거가 실패할 수 있는 문제에 대한 솔루션을 제공합니다.

적용 대상: Windows 10 - 모든 버전, Windows Server 2012 R2
원래 KB 번호: 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를 검색합니다. 소프트웨어 업데이트에 요약 정보 Stream 올바른 패치 GUID(Globally Unique Identifier)가 있는지 확인하고 올바른 제품 GUID를 대상으로 합니다.

      참고

      이 디렉터리가 사용자별 설치 및 컴퓨터별 설치에 대한 캐시 역할을 하므로 사용자별 설치를 사용하여 이 디렉터리에서 소프트웨어 업데이트를 시뮬레이션할 수 있습니다.

    2. 다음 하위 키를 만듭니다. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      참고

      소프트웨어 업데이트 캐시 레지스트리를 다시 만드는 것은 보안 위험입니다. 그러나 이것이 손상을 복구하는 유일한 방법입니다. 소프트웨어 업데이트가 올바른 소프트웨어 업데이트인지 확인하여 보안 위험을 줄일 수 있습니다. 이렇게 하려면 소프트웨어 업데이트의 체크섬을 확인합니다.

    3. 2단계를 만든 레지스트리 하위 키에 LocalPackage 문자열 값을 만듭니다. LocalPackage 문자열 값이 소프트웨어 업데이트 경로로 설정되어 있는지 확인합니다.

  3. 나머지 소프트웨어 업데이트 참조를 삭제합니다. 이렇게 하려면 다음 단계를 따르세요.

    1. 다음 하위 키를 열고 "AllPatches" 다중 sz 값에서 제거 <PatchSQUID> 합니다. 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" 다중 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 업데이트 또는 Microsoft 업데이트에서 발생한 문제에 대해 구체적으로 설명되지 않습니다.