首页 > 学院 > 操作系统 > 正文

如何修复损坏问题的MSI软件更新注册

2024-06-28 13:17:16
字体:
来源:转载
供稿:网友
适用范围:
Windows xp;windows 2003;windows Vista;windows 2008
操作步骤:

重要:此部分包含告诉您如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重问题。因此,请确保仔细遵循这些步骤。为增加保护,请您对其进行修改之前备份注册表。然后,可以在出现问题时还原注册表。

若要解决此问题,请按照下列步骤操作:

一、确认产品会受到影响。请执行以下步骤: 

a.
通过打开以下注册表子项来查找软件更新注册的产品:

HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/PRoducts/<ProductSQUID>/Patches</ProductSQUID> </SID>

在此子项下,将为每个软件更新应用到产品中的一个子项。

b.
下面的格式中的每个子项,请执行以下步骤:

HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/Products/<ProductSQUID>/Patches/<PatchSQUID> </PatchSQUID> </ProductSQUID> </SID>

验证存在以下注册表子项:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/Patches/<PatchSQUID> </PatchSQUID> </SID>

如果缺少该子项,则该产品会受到影响。继续执行步骤

如果存在该子项,验证 LocalPackage 字符串值设置正确,也存在于包的 LocalPackage 字符串值来引用。

a)LocalPackage
字符串值或引用的包丢失时,如果该产品会受到影响。继续执行步骤 2
b)
如果存在引用的包且需要执行任何其他操作。

二、重新创建软件更新缓存注册表的详细信息。请执行以下步骤:

a.
搜索您试图安装该软件更新的%windir%/installer/*.msp 。验证软件更新具有正确的修补程序 GUID 摘要信息流和目标在正确的产品的 Guid
注意:由于此目录用作每个用户安装以及每台计算机安装的高速缓存,您可以通过使用每个用户安装模拟此目录中的软件更新。

b.
创建以下注册表子项:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/Patches/<PatchSQUID> </PatchSQUID> </SID>

注意:它是重新创建软件更新缓存注册表存在安全风险。但是,这是修复损坏的唯一方法。您可以减少安全风险,从而确保软件更新为正确的软件更新。若要执行此操作,请验证软件更新的校验和。

c.LocalPackage
字符串值中创建的注册表子项创建第 2 步,b.请确保 LocalPackage 字符串值被设置为软件更新的路径。

三、删除剩余的软件更新引用。请执行以下步骤:

1
、打开下面的子项,然后删除<PatchSQUID>"AllPatches" sz 值:<b00> </b00> </PatchSQUID>
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/Products/<ProductSQUID>/Patches</ProductSQUID> </SID>

2
、删除以下注册表子项:

HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/Products/<ProductSQUID>/Patches/<PatchSQUID> </PatchSQUID> </ProductSQUID> </SID>

3
、删除以下注册表子项:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/UserData/<SID>/Patches/<PatchSQUID> </PatchSQUID> </SID>

注意:如果缺少此子项,则跳过此步骤。

4
、如果产品已安装每台计算机,请按照下列步骤:

a.
打开以下注册表子项:
HKEY_LOCAL_MACHINE/Software/Classes/Installer/Products/<ProductSQUID>/Patches</ProductSQUID>

a-1.
如果<PatchSQUID>字符串值是否存在,则删除它。</PatchSQUID>
a-2.
如果存在"修补程序"的多 sz 值中的<PatchSQUID>字符串值,则删除<PatchSQUID>字符串值。
</PatchSQUID></PatchSQUID>

b.
如果存在以下注册表子项,请将其删除:

HKEY_LOCAL_MACHINE/Software/Classes/Installer/Patches/<PatchSQUID></PatchSQUID>

5
、如果产品已安装每个用户的非托管:

a.
打开以下注册表子项:
HKEY_CURRENT_USER/Software/Microsoft/Installer/Products/<ProductSQUID>/Patches</ProductSQUID>

a-1.
如果<PatchSQUID>字符串值是否存在,则删除它。</PatchSQUID>
a-2.
如果<PatchSQUID>"修补程序" sz 值存在时,删除它。
</PatchSQUID>

b.
如果存在以下注册表子项,请将其删除:

HKEY_CURRENT_USER/Software/Microsoft/Installer/Patches/<PatchSQUID></PatchSQUID>

6
、如果产品已安装每个用户管理:

a.
打开以下注册表子项:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/Managed/<SID>/Installer/Products/<ProductSQUID>/Patches</ProductSQUID> </SID>

a-1.
如果<PatchSQUID>字符串值是否存在,则删除它。</PatchSQUID>
a-2.
如果<PatchSQUID>"修补程序" sz 值存在时,删除它。
</PatchSQUID>

b.
如果存在以下注册表子项,请将其删除:

HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Installer/Managed/<SID>/Installer/Patches/<PatchSQUID> </PatchSQUID> </SID>


诊断和自动修复问题
下载附件中的修复工具,运行诊断和修复程序安装和卸载问题自动诊断故障程序可能会自动修复本文中描述的问题



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表