无法在 Windows XP 中安装某些更新或程序
本文提供了一些高级手动方法,可用于修复一些阻止安装某些更新或程序的问题。
原始 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 安装程序无法验证文件的完整性。 确保加密服务在此计算机上运行。
尝试安装 Microsoft 数据访问组件 (MDAC) 2.8 时,会收到类似于以下内容的错误消息:
INF 安装失败。 原因:时间戳签名和/或证书无法验证或格式不正确。
%WINDIR%\System32\CatRoot2\Edb.log可能增长到 20 兆字节(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返回代码已屏蔽为 MSI 自定义操作符合性0x643。
在以下任一情况下都可能出现这些问题:
- %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) 安全更新。
- 软件分发文件夹已损坏。
重命名Edb.log文件,然后再次尝试安装该程序。 若要重命名Edb.log文件,请执行以下步骤:
单击“开始”,单击“运行”,在“打开”框中键入 cmd,然后单击“确定”。
备注
在基于 Windows Vista 的计算机上,单击“开始”,在“开始搜索”文本框中键入 cmd,右键单击cmd.exe,然后单击“以管理员身份运行”。
在命令提示符下,键入以下命令,然后按 Enter:
控制台ren %systemroot%\system32\catroot2\Edb.log *.tst
可以继续使用 “启用受信任的发布者锁定 组策略”设置,但必须先将相应的证书添加到受信任的发布者证书存储。 为此,请关闭 “启用受信任的发布者锁定 组策略”设置,在受信任的发布者证书存储中安装相应的证书,然后重新启用 “启用受信任的发布者锁定 组策略”设置。 若要安装适用于 Microsoft Windows 和 Microsoft Internet Explorer 产品更新的相应证书,请执行以下步骤:
从Microsoft下载中心、Windows 更新目录或Microsoft更新下载要安装的Microsoft产品更新。
有关如何从Microsoft下载中心下载产品更新的详细信息,请查看 如何从联机服务目录获取Microsoft支持文件。
有关如何从Windows 更新目录中下载产品更新的详细信息,请查看如何从Windows 更新目录中下载包含驱动程序和修补程序的更新。
将产品更新包提取到临时文件夹。 用于执行此操作的命令行命令取决于要尝试安装的更新。 查看与更新关联的Microsoft知识库文章,以确定用于提取包的相应命令行开关。 例如,若要将 Windows XP 的824146安全更新提取到 C:\824146 文件夹,请运行
Windowsxp-kb824146-x86-enu -x:c:\824146
。 若要将 Windows XP 的 828750 安全更新提取到 C:\828750 文件夹,请运行q828750.exe /c /t:c:\828750
。右键单击步骤 2 中创建的临时文件夹中产品更新包中的 KB Number.cat 文件,然后单击“ 属性”。
备注
KB Number.cat 文件可能位于子文件夹中。 例如,该文件可能位于 C:\824146\sp1\update 文件夹或 C:\824146\sp2\update 文件夹中。
在 “数字签名 ”选项卡上,单击数字签名,然后单击“ 详细信息”。
单击“查看证书”,然后单击“安装证书”。
单击“下一步”以启动证书导入向导。
单击“ 将所有证书放入以下存储区”,然后单击“ 浏览”。
单击“受信任的发布者”,然后单击“确定”。
单击“ 下一步”,单击“ 完成”,然后单击“ 确定”。
若要验证 Windows 或 Internet Explorer 产品更新证书路径中的证书,请执行以下步骤:
在 Internet Explorer 中,单击“工具”,然后单击“Internet 选项”。
在 “内容 ”选项卡上,单击“ 证书”。
在 “受信任的根证书颁发机构 ”选项卡上,双击 Microsoft根颁发机构。 如果缺少此证书,请转到步骤 2。
在 “常规 ”选项卡上,确保 从日期起 的有效期为 1/10/1997 到 2020 年 12 月 31 日。
在“证书路径”选项卡上,验证此证书是否在“证书状态”下显示。
单击“确定”,然后双击“无责任接受证书”。
在 “常规 ”选项卡上,确保 日期有效期 为 1997 年 5 月 11 日到 2004 年 1 月 7 日。
在“认证路径”选项卡上,验证此证书是否已过期或尚无效,或者此证书在“证书状态”下显示。
备注
尽管此证书已过期,但证书将继续工作。 如果证书丢失或吊销,操作系统可能无法正常工作。 有关详细信息,请查看 所需的受信任根证书。
单击“确定”,然后双击 GTE CyberTrust 根证书。 可能有多个具有相同名称的证书。 检查到期日期为 2006 年 2 月 23 日的证书。
在 “常规 ”选项卡上,确保 日期的 有效期为 1996 年 2 月 23 日到 2006 年 2 月 23 日。
在“证书路径”选项卡上,验证此证书是否在“证书状态”下显示。
备注
尽管此证书已过期,但证书将继续工作。 如果证书丢失或吊销,操作系统可能无法正常工作。
单击“确定”,然后双击“解冻时间戳 CA”。
在 “常规 ”选项卡上,确保 日期的 有效期为 12/31/1996 到 2020 年 12 月 31 日。
在“证书路径”选项卡上,验证此证书是否在“证书状态”下显示。
如果其中一个或多个证书丢失或损坏,请将缺失或损坏的证书导出到另一台计算机,然后在计算机上安装证书。 若要在另一台计算机上导出证书,请执行以下步骤:
- 在 Internet Explorer 中,单击“工具”,然后单击“Internet 选项”。
- 在 “内容 ”选项卡上,单击“ 证书”。
- 在 “受信任的根证书颁发机构 ”选项卡上,单击要导出的证书。
- 单击“导出”,然后按照说明将证书导出为 DER 编码的二进制 x.509()。CER) 文件。
- 导出证书文件后,将其复制到要导入它的计算机。
- 在要导入证书的计算机上,双击该证书。
- 单击“安装证书”,然后单击“下一步”。
- 单击“完成”,然后单击“确定”。
若要清除临时文件并重启修补程序安装或 Service Pack 安装,请执行以下步骤:
单击“开始” ,再单击“运行” ,键入 cmd,然后单击“确定” 。
在命令提示符处,键入以下命令。 在每个命令后按 Enter。
控制台net stop cryptsvc ren %systemroot%\System32\Catroot2 oldcatroot2 net start cryptsvc exit
删除以下文件夹中的所有 tmp*.cat 文件:
- %systemroot% \system32\CatRoot{127D0A1D-4EF2-11D1-8608-00C04FC295EE}
- %systemroot% \system32\CatRoot{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
如果此文件夹中不存在以 tmp 开头的文件,请不要删除任何其他文件。 此文件夹中的 .cat 文件是安装修补程序和服务包所必需的。
重要
不要重命名 Catroot 文件夹。 Catroot2 文件夹由 Windows 自动重新创建,但如果已重命名 Catroot 文件夹,则不会重新创建 Catroot 文件夹。
从 %systemroot% \inf 文件夹中删除所有 oem*.* 文件。
重启失败的修补程序安装或 Service Pack 安装。
单击“开始”,单击“运行”,键入 services.msc,然后单击“确定”。
备注
在基于 Windows Vista 的计算机上,单击“开始”,在“开始搜索”框中键入 services.msc,右键单击 services.msc,然后单击“以管理员身份运行”。
在“服务”(本地)窗格中,右键单击“ 自动更新”,然后单击“ 停止”。
最小化“服务”(本地)窗口。
选择 Windows 分发文件夹的所有内容,然后删除它们。
备注
默认情况下,Windows 分发文件夹位于 驱动器 :\Windows\SoftwareDistribution 文件夹中。 在此位置, 驱动器 是安装 Windows 的驱动器的占位符。
确保 Windows 分发文件夹为空,然后最大化“服务”(本地)窗口。
在“ 服务”(本地) 窗格中,右键单击“ 自动更新”,然后单击“ 开始”。
重新启动计算机,然后再次运行Windows 更新。
如果所有这些方法都无法解决问题,可能需要执行就地升级。
如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。