介绍

介绍

我正在尝试使用 Windows 更新来更新我的 Windows 7 计算机,但不断收到错误 800B0100(类似于报告的这里这里, 和这里)。在采取了这些指南中提到的几个步骤后(系统更新准备工具、检查磁盘、Windows 更新疑难解答、DISM、sfc,也许还有其他我忘记的)。我几乎一无所获。

我得到的唯一线索来自DISM /Online /Cleanup-image /Scanhealth我运行的命令。该命令产生了CheckSUR.log 文件。一些亮点:

Checking Windows Servicing Packages

Checking Package Manifests and Catalogs
(f) CBS MUM Corrupt 0x00000000  servicing\Packages\Microsoft-Windows-IE-Hyphenation-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum       Expected file name Microsoft-Windows-IE-Hyphenation-Parent-Package-English~31bf3856ad364e35~neutral~~11.2.9412.0.mum does not match the actual file name
(f) CBS MUM Corrupt 0x00000000  servicing\Packages\Microsoft-Windows-IE-Spelling-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum      Expected file name Microsoft-Windows-IE-Spelling-Parent-Package-English~31bf3856ad364e35~neutral~~11.2.9412.0.mum does not match the actual file name
(f) CBS MUM Corrupt 0x800F0900  servicing\Packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum        Line 1: 
(f) CBS Catalog Corrupt 0x800B0100  servicing\Packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.cat        
(f) CBS MUM Corrupt 0x800F0900  servicing\Packages\Package_112_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum        Line 1: 

...

Checking Package Watchlist

Checking Component Watchlist

Checking Packages

Checking Component Store
(f) CSI Manifest All Zeros  0x00000000  winsxs\Manifests\amd64_microsoft-windows-wow64_31bf3856ad364e35_6.1.7601.23136_none_c6c193f2071b07e3.manifest   amd64_microsoft-windows-wow64_31bf3856ad364e35_6.1.7601.23136_none_c6c193f2071b07e3 
(f) CSI Manifest All Zeros  0x00000000  winsxs\Manifests\amd64_microsoft-windows-ncrypt-dll_31bf3856ad364e35_6.1.7601.23136_none_bc7a217a2167e4bd.manifest  amd64_microsoft-windows-ncrypt-dll_31bf3856ad364e35_6.1.7601.23136_none_bc7a217a2167e4bd    
(f) CSI Manifest All Zeros  0x00000000  winsxs\Manifests\amd64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7601.23136_none_b772aa2a2bf98230.manifest   amd64_microsoft-windows-ntdll_31bf3856ad364e35_6.1.7601.23136_none_b772aa2a2bf98230 
(f) CSI Manifest All Zeros  0x00000000  winsxs\Manifests\amd64_microsoft-windows-smss_31bf3856ad364e35_6.1.7601.23136_none_0ad673e548fd75d4.manifest    amd64_microsoft-windows-smss_31bf3856ad364e35_6.1.7601.23136_none_0ad673e548fd75d4  
(f) CSI Manifest All Zeros  0x00000000  winsxs\Manifests\amd64_microsoft-windows-rpc-http_31bf3856ad364e35_6.1.7601.23136_none_fe94b8d86f1fbfc8.manifest    amd64_microsoft-windows-rpc-http_31bf3856ad364e35_6.1.7601.23136_none_fe94b8d86f1fbfc8  

...

servicing\packages\Microsoft-Windows-IE-Hyphenation-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum
    servicing\packages\Microsoft-Windows-IE-Spelling-Parent-Package-English~31bf3856ad364e35~~~11.2.9412.0.mum
    servicing\packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
    servicing\packages\Package_111_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
    servicing\packages\Package_112_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
    servicing\packages\Package_112_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
    servicing\packages\Package_113_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
    servicing\packages\Package_113_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum
    servicing\packages\Package_114_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.mum

我该如何修复这些错误,以便下次运行时DISM不会出现这些错误?我希望这可以修复我原来的错误(Windows 更新中的错误代码为 800B0100),因此如果您有解决方案,我将不胜感激。

答案1

介绍

DISM只有在能够访问 的正确子目录中的更新“良好”版本时,才会修复损坏的更新%WINDIR%\Temp\CheckSUR\。如果没有这些文件,DISM或系统更新和准备工具SURT只会生成遇到的损坏文件的列表,并且实际上不会执行任何修复(正如您所见)。

那么,如何识别损坏的文件并修复它们呢?这MS 知识库文章对此进行了合理的描述,尽管有一些断开的链接和缺失的细节,但这些内容大部分都已在这篇文章中得到解决其他 MS 知识库令人沮丧的是,一些信息与此相冲突MS technet 文章*(见脚注)。假设您宁愿在这里阅读有关该过程的信息,而不是拼凑几个不同的来源……

识别不良更新的步骤

%WINDIR%\Logs\CBS\CheckSUR.log,通过安装生成超音速巡航或运行分布式系统管理,跳到文件底部并阅读servicing\packages\Package_该部分中以 开头的行Unavailable repair files:。你看到_for_KB######,KB######(就你的情况而言KB3040272)是您要下载的更新。@magicandre1981 还指出KB3071756对您造成影响,大概是因为您的日志文件中的一部分并未在问题中直接提供。

下载未损坏的软件包版本

确定损坏的 KB 后,你可以获取 Microsoft 更新MSU在以下网址的相关 KB 条目中获取 Microsoft 更新文件support.microsoft.com (/kb/######)或者,使用 IE,转到Microsoft 更新目录并搜索相关的 KB 编号。在 MS KB 页面上,向下滚动到“更新信息”部分,然后查找显示“立即下载软件包”的链接,该链接位于您操作系统的链接旁边(x86 = 32 位操作系统;x64 = 标准 64 位;ia-64 仅适用于高端英特尔 64 位服务器)。下载文件。

使更新文件可用于 DISM/SURT

下载文件后,你可以将整个 MSU 放置到下面所示位置,或者你可以提取所有文件mumcat然后manifest包含的文件,然后将 CheckSUR.log 指示的损坏包的“良好”版本移动到相应的目录中(再次按如下所示)。可以使用以下命令从 msu 文件中提取命令序列

expand -f:* C:\path\to\msu.msu %temp%\msuexpanded\
expand -f:* %temp\msuexpanded\Windows6.1-KBnnnnnn-xnn.cab %temp\msuexpanded\cab\

update.catupdate.mum应重命名为特定于包的名称 - 例如您的包裹破损,您需要将其重命名update.catPackage_for_KB3040272~31bf3856ad364e35~amd64~~6.1.1.1.cat

然后,您应该将文件(msu 和/或其他扩展)从 %temp\msuexpanded\cab\ 目录移动到位*(参见脚注)

File Extension | Absolute path (create if needed) | OS version confirmed (by)
-------------- | -------------------------------- | -----
msu            | %SYSTEMROOT%\CheckSUR\packages\  | Windows 7 SP1 x64 (@chadnt‡)

(符号见脚注)

File Extension | Subdirectory of %WINDIR%\Temp\CheckSUR\ (create if needed)
-------------- | -------
cat            | servicing\Packages\
mum            | servicing\Packages\
manifest       | winsxs\Manifests\
msu (alternate)| Packages\

%SYSTEMROOT%%WINDIR% 默认为 C:\WINDOWS

如果修复文件位于正确的目录中,DISM/SURT 现在应该修复损坏的文件。

修复损坏的文件

KB2966583-Windows 7 和 Windows Server 2008 R2 中的系统更新准备工具的改进知识库文章|MSU下载) 安装后,命令行版本“DISM”可用。

DISM 成为 CheckSUR(又称系统更新准备工具)的命令行调用版本(苏里南)在 Windows7 中,这样您就不需要从微软知识库 947821每次您需要检查/修复损坏的 MS 更新。

DISM 的使用方法如下

DISM /Online /Cleanup-Image /Scanhealth

必须从管理员帐户运行(即管理员/提升的命令提示符或具有提升权限的开始栏)。

或者您可以随时安装来自 KB947821 的 SURT再次。

再次运行 DISM 或 SURT 后,再次检查 CheckSUR.log 文件,看看它是否解决了损坏的软件包。如果没有效果,您可能希望考虑执行就地更新的 Windows。

免责声明:本文部分内容摘自@magicandre1981 的回复。由于我添加了太多细节,我不再觉得对他的帖子进行简单的编辑是必要的。

脚注

*关于目录,微软网站上给出了相互矛盾的信息:

  1. KB947821(“如何修复”的第 4 步)表示msu应复制到%SYSTEMROOT%\CheckSUR\packages
  2. KB2700601msumumcat%WinDir%\Temp\CheckSUR\Packages\
  3. 微软技术网说(纠正拼写错误后)mum并且cat文件进入 %windir%\Temp\CheckSUR\servicing\packages

类似地,有多个位置被标识为manifest文件的适当目录

†@mpag
‡@chadnt

答案2

尝试安装更新 KB2966583

Windows 7 和 Windows Server 2008 R2 中的系统更新准备工具的改进
http://support.microsoft.com/kb/2966583/en-us

现在您应该允许您运行此 DISM 命令来修复损坏的文件:

DISM /Online /Cleanup-Image /Scanhealth

(我从未尝试过这是否真的有效。请尝试并报告)

如果此方法无效,请执行以下操作。因为更新文件KB3040272KB3071756已损坏,请从下载中心下载 MSU 文件,将其放入文件夹中%SYSTEMROOT%\CheckSUR\packages并运行checksur 工具 KB947821再次。

如果这仍然不能解决你的问题,请通过以下方式修复你的 Windows就地更新

相关内容