我正在尝试使用 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 放置到下面所示位置,或者你可以提取所有文件mum
,cat
然后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.cat
和update.mum
应重命名为特定于包的名称 - 例如您的包裹破损,您需要将其重命名update.cat
为Package_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 的回复。由于我添加了太多细节,我不再觉得对他的帖子进行简单的编辑是必要的。
脚注
*关于目录,微软网站上给出了相互矛盾的信息:
- KB947821(“如何修复”的第 4 步)表示
msu
应复制到%SYSTEMROOT%\CheckSUR\packages
- KB2700601说
msu
,mum
并cat
%WinDir%\Temp\CheckSUR\Packages\
- 微软技术网说(纠正拼写错误后)
mum
并且cat
文件进入%windir%\Temp\CheckSUR\servicing\packages
类似地,有多个位置被标识为manifest
文件的适当目录
答案2
Windows 7 和 Windows Server 2008 R2 中的系统更新准备工具的改进
http://support.microsoft.com/kb/2966583/en-us
现在您应该允许您运行此 DISM 命令来修复损坏的文件:
DISM /Online /Cleanup-Image /Scanhealth
(我从未尝试过这是否真的有效。请尝试并报告)
如果此方法无效,请执行以下操作。因为更新文件KB3040272和KB3071756已损坏,请从下载中心下载 MSU 文件,将其放入文件夹中%SYSTEMROOT%\CheckSUR\packages
并运行checksur 工具 KB947821再次。
如果这仍然不能解决你的问题,请通过以下方式修复你的 Windows就地更新。