无法在 Windows XP 中安装某些更新或程序

本文提供了一些高级手动方法,这些方法可用于修复一些阻止你安装某些更新或程序的问题。

适用于:Windows 10 - 所有版本,Windows Server 2012 R2
原始 KB 编号: 822798

症状

当你尝试下载 ActiveX 控件、安装 Windows 或 Windows 组件的更新、安装适用于 Windows 或 Windows 组件的 Service Pack 或安装 Microsoft 或第三方软件程序时,可能会遇到以下一个或多个症状:

注意

这些问题可能 出于这些原因而发生。

  • 尝试安装程序或更新时,会收到以下错误消息:

    找不到数字签名
    Microsoft 数字签名确认软件已经过 Windows 测试,并且软件自测试以来未更改。
    要安装的软件不包含 Microsoft 数字签名。 因此,无法保证此软件在 Windows 中正常工作。
    软件包的名称
    如果要搜索 Microsoft 数字签名的软件,请访问 Windows 更新 网站http://update.microsoft.com,查看是否有可用软件。
    是否继续安装?

    如果单击“ 详细信息”,则会收到以下消息:

    Microsoft Windows
    要安装的软件包上的签名无效。 软件包未正确签名。

    在第一个错误消息对话框中单击 “确定” 后,将收到一条消息,指出安装成功,或收到以下错误消息:

    更新包的名称
    由于本地安全选项设置,加密操作失败。

  • 尝试安装更新或安装 Service Pack 时,会收到类似于以下内容之一的错误消息:

    • 错误 1

      更新包的名称
      安装程序无法验证文件 Update.inf 的完整性。 请确保加密服务正在此计算机上运行。

    • 错误 2

      未能安装目录文件。

    • 错误 3

      你安装的软件尚未通过 Windows 徽标测试来验证其与 Windows XP 的兼容性。 (告诉我为什么此测试很重要。)
      不会安装此软件。 与系统管理员保持联系。

    • 错误 4

      你安装的软件尚未通过 Windows 徽标测试来验证其与此版本的 Windows 的兼容性。 (告诉我为什么此测试很重要。)

  • 尝试安装 Windows XP Service Pack 时,会收到类似于以下内容的错误消息:

    Service Pack 1 安装程序无法验证文件的完整性。 请确保加密服务正在此计算机上运行。

  • 尝试 (MDAC) 2.8 安装 Microsoft 数据访问组件时,会收到类似于以下内容的错误消息:

    INF 安装失败。 原因:时间戳签名和/或证书无法验证或格式不正确。

  • %WINDIR%\System32\CatRoot2\Edb.log) 可能会增加到 20 MB (MB,即使文件通常小于 1 MB 也是如此。

  • 尝试从Windows 更新网站或 Microsoft 更新网站安装包时,会收到类似于以下内容的消息:

    该软件尚未通过 Windows 徽标测试,并且不会安装。

  • 检查 %systemroot%\Windowsupdate.log 文件时,会看到以下错误之一的条目:

    • 0x80096001
    • 0x80096005
    • 0x80096010
    • 0x800B0001
    • 0x800B0003
    • 0x800B0004
    • 0x800B0109
    • 0x8007f0da
    • 0x8007f01e
  • 在基于 Windows XP 的计算机上使用 Microsoft Windows 更新时,更新过程会失败,并且你会收到0x8007f007错误消息。 无论选择哪种类型的更新,都可能会发生这种情况。

  • Svcpack.log 文件可能包含类似于以下内容的条目

937.406:GetCatVersion:无法从 C:\WINDOWS\system32 \CatRoot 检索版本信息{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\Tmp.0.scw.cat,并出现错误 0x57 Tmp.0.scw.cat 937.437:GetCatVersion:无法从 C:\WINDOWS\Tmp.0.scw.cat 检索版本信息,错误0x80092004 940.344:InstallSingleCatalogFile: MyInstallCatalog Tmp.0.scw.cat 失败;error=0xfffffbfe。 940.344:DoInstallation:MyInstallCatalogFiles failed:STR_CATALOG_INSTALL_FAILED
955.125:UnRegisterSpuninstForRecovery,无法删除 SpRecoverCmdLine 值,错误0x2
955.125:DoInstallation:无法注销恢复 spuninst.exe。
962.656:取消注册卸载程序 -> Windows Server 2003 Service Pack,0
962.656:无法安装目录文件。 1448.406:向用户显示的消息:无法安装目录文件。
1448.406:用户输入:确定
1448.406:Update.exe 扩展错误代码 = 0xf01e
1448.406:Update.exe 返回代码被屏蔽为0x643,以符合 MSI 自定义操作。

原因

在以下任一情况下,都可能出现这些问题:

  • %Systemroot%\System32\Catroot2 文件夹中存在日志文件或数据库损坏。
  • 加密服务 设置为 “已禁用”。
  • 其他 Windows 文件已损坏或丢失。
  • 时间戳签名或证书无法验证或格式不正确。
  • 隐藏属性是为 %Windir% 文件夹或其子文件夹之一设置的。
  • 未签名的非驱动程序安装行为组策略”设置 (Windows 2000 仅) 设置为“不允许安装”或“警告但允许安装”,或者以下注册表项中的“策略二进制值”未设置为 0:HKEY_LOCAL_MACHINE\Software\Microsoft\Non-Driver Signing
  • 启用受信任的发布者锁定组策略设置处于打开状态,并且受信任的发布者证书存储中没有相应的证书。 此组策略设置位于“用户配置”下、“Windows 设置”下、“Internet Explorer 维护”下、“安全”下,位于“组策略 MMC”管理单元的“验证码设置”下。
  • 你正在安装 Internet Explorer 6 SP1,并且已安装823559 (MS03-023) 安全更新。
  • 软件分发文件夹已损坏。

方法 1:重命名Edb.log文件

重命名Edb.log文件,然后再次尝试安装程序。 若要重命名Edb.log文件,请执行以下步骤:

  1. 单击 “开始”,单击“ 运行”,在“ 打开 ”框中键入 cmd,然后单击“ 确定”。

    注意

    在基于 Windows Vista 的计算机上,单击“开始”,在“开始搜索”文本框中键入 cmd,右键单击“cmd.exe”,然后单击“以管理员身份运行”。

  2. 在命令提示符处,键入以下命令,然后按 Enter:

    ren %systemroot%\system32\catroot2\Edb.log *.tst
    

方法 2:暂时关闭受信任的发布者锁定,并将相应的证书安装到受信任的发布者证书存储

可以继续使用“启用受信任的发布者锁定组策略设置,但必须先将相应的证书添加到受信任的发布者证书存储区。 为此,请关闭“启用受信任的发布者锁定组策略设置,在受信任的发布者证书存储中安装相应的证书,然后将启用受信任的发布者锁定组策略设置重新打开。 若要为 Microsoft Windows 和 Microsoft Internet Explorer 产品更新安装相应的证书,请执行以下步骤:

  1. 从 Microsoft 下载中心、Windows 更新目录或 Microsoft 更新下载要安装的 Microsoft 产品更新。

    有关如何从 Microsoft 下载中心下载产品更新的详细信息,请参阅 如何从联机服务目录获取 Microsoft 支持文件

    有关如何从Windows 更新目录中下载产品更新的详细信息,请参阅如何从Windows 更新目录中下载包含驱动程序和修补程序的更新

  2. 将产品更新包提取到临时文件夹。 用于执行此操作的命令行命令取决于尝试安装的更新。 查看与更新关联的 Microsoft 知识库文章,以确定将用于提取包的相应命令行开关。 例如,若要将 Windows XP 的824146安全更新提取到 C:\824146 文件夹,请运行 Windowsxp-kb824146-x86-enu -x:c:\824146。 若要将 Windows XP 的 828750 安全更新提取到 C:\828750 文件夹,请运行 q828750.exe /c /t:c:\828750

  3. 在步骤 2 中创建的临时文件夹中,右键单击产品更新包中的 KB Number.cat 文件,然后单击“ 属性”。

    注意

    KB Number.cat 文件可能位于子文件夹中。 例如,文件可能位于 C:\824146\sp1\update 文件夹中或 C:\824146\sp2\update 文件夹中。

  4. 在“ 数字签名 ”选项卡上,单击数字签名,然后单击“ 详细信息”。

  5. 单击“ 查看证书”,然后单击“ 安装证书”。

  6. 单击“ 下一步 ”启动 证书导入 向导。

  7. 单击“ 将所有证书放入以下存储区”,然后单击“ 浏览”。

  8. 单击“ 受信任的发布者”,然后单击“ 确定”。

  9. 单击“ 下一步”,单击“ 完成”,然后单击“ 确定”。

方法 3:验证证书路径中所有证书的状态,并从另一台计算机导入丢失或损坏的证书

若要验证 Windows 或 Internet Explorer 产品更新的证书路径中的证书,请执行以下步骤:

步骤 1:验证 Microsoft 证书

  1. 在 Internet Explorer 中,单击“工具”,然后单击“Internet 选项”

  2. 在“ 内容 ”选项卡上,单击“ 证书”。

  3. 在“ 受信任的根证书颁发机构 ”选项卡上,双击“ Microsoft 根证书颁发机构”。 如果缺少此证书,请转到步骤 2。

  4. 在“ 常规 ”选项卡上,确保 “有效日期 ”为 1/10/1997 到 12/31/2020

  5. 在“ 证书路径 ”选项卡上,验证 “证书状态 ”下是否显示“此 证书正常”。

  6. 单击“ 确定”,然后双击“ 无责任接受 证书”。

  7. 在“ 常规 ”选项卡上,确保 “从 日期 5/11/1997 到 1/7/2004 有效”。

  8. 在“证书路径”选项卡上,验证“证书状态”下是否显示“此证书已过期或尚未有效”或“此证书正常”。

    注意

    尽管此证书已过期,但证书将继续有效。 如果证书缺失或吊销,操作系统可能无法正常工作。 有关详细信息,请参阅 所需的受信任根证书

  9. 单击“ 确定”,然后双击 “GTE CyberTrust 根 证书”。 你可能有多个同名的证书。 检查过期日期为 2006/2/23 的证书。

  10. 在“ 常规 ”选项卡上,确保 “有效日期 ”为 2/23/1996 到 2006/2/23。

  11. 在“ 证书路径 ”选项卡上,验证 “证书状态 ”下是否显示“此 证书正常”。

    注意

    尽管此证书已过期,但证书将继续有效。 如果证书缺失或吊销,操作系统可能无法正常工作。

  12. 单击“ 确定”,然后双击“ 解冻时间戳 CA”。

  13. 在“ 常规 ”选项卡上,确保 “从 日期 12/31/1996 到 12/31/2020 有效”。

  14. 在“ 证书路径 ”选项卡上,验证 “证书状态 ”下是否显示“此 证书正常”。

步骤 2:导入丢失或损坏的证书

如果其中一个或多个证书丢失或损坏,请将丢失或损坏的证书导出到另一台计算机,然后在计算机上安装证书。 若要在另一台计算机上导出证书,请执行以下步骤:

  1. 在 Internet Explorer 中,单击“工具”,然后单击“Internet 选项”
  2. 在“ 内容 ”选项卡上,单击“ 证书”。
  3. 在“ 受信任的根证书颁发机构 ”选项卡上,单击要导出的证书。
  4. 单击“ 导出”,然后按照说明将证书导出为 DER 编码的二进制 x.509 (。CER) 文件。
  5. 导出证书文件后,将其复制到要导入的计算机。
  6. 在要导入证书的计算机上,双击证书。
  7. 单击“ 安装证书”,然后单击“ 下一步”。
  8. 单击"完成",然后单击"确定"。

方法 4:清除临时文件并重启修补程序安装或 Service Pack 安装

若要清除临时文件并重启修补程序安装或 Service Pack 安装,请执行以下步骤:

  1. 单击 “开始”,单击“ 运行”,键入 cmd,然后单击“ 确定”。

  2. 在命令提示符下,键入以下命令。 在每个命令后,按 Enter。

    net stop cryptsvc
    ren %systemroot%\System32\Catroot2 oldcatroot2
    net start cryptsvc
    exit
    
  3. 删除以下文件夹中的所有 tmp*.cat 文件:

    • %systemroot% \system32\CatRoot{127D0A1D-4EF2-11D1-8608-00C04FC295EE}
    • %systemroot% \system32\CatRoot{F750E6C3-38EE-11D1-85E5-00C04FC295EE}

    如果此文件夹中不存在以 tmp 开头的文件,请不要删除任何其他文件。 安装修补程序和 Service Pack 时,需要此文件夹中的 .cat 文件。

    重要

    不要重命名 Catroot 文件夹。 Catroot2 文件夹由 Windows 自动重新创建,但如果 Catroot 文件夹已重命名,则不会重新创建 Catroot 文件夹。

  4. 从 %systemroot% \inf 文件夹中删除所有 oem*.* 文件。

  5. 重启失败的修补程序安装或 Service Pack 安装。

方法 5:清空软件分发文件夹

  1. 单击 “开始”,单击“ 运行”,键入 services.msc,然后单击“ 确定”。

    注意

    在基于 Windows Vista 的计算机上,单击“ 开始”,在“ 开始搜索 ”框中键入 services.msc,右键单击“ services.msc”,然后单击“ 以管理员身份运行”。

  2. 在“服务 (本地) ”窗格中,右键单击“自动汇报”,然后单击“停止”。

  3. 最小化“服务 (本地) ”窗口。

  4. 选择 Windows 分发文件夹的所有内容,然后将其删除。

    注意

    默认情况下,Windows 分发文件夹位于 驱动器 :\Windows\SoftwareDistribution 文件夹中。 在此位置中, 驱动器 是安装 Windows 的驱动器的占位符。

  5. 确保 Windows 分发文件夹为空,然后最大化服务 (本地) 窗口。

  6. “服务 (本地) ”窗格中,右键单击“自动汇报”,然后单击“启动”。

  7. 重新启动计算机,然后再次运行Windows 更新。

方法 6:执行就地升级

如果所有这些方法都无法解决问题,则可能必须执行就地升级。

数据收集

如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。