安装 KB4041681 和 KB4041083 时出现错误代码 0x80073712

安装 KB4041681 和 KB4041083 时出现错误代码 0x80073712

在 Orcale Virtual Box 上的 VM 中运行的 Windows 7 SP1 x86 上发生错误。

通过 Windows 更新安装 KB4041681 和 KB4041083 时出现错误代码 0x80073712。我尝试手动安装这些更新,我尝试了几乎所有能找到的方法,但都无法解决我的问题。当我尝试安装 Visual 2017 Build 工具或 .NET 4.7 时,我也收到相同的错误代码。

运行系统文件检查器的结果

c:\Windows\System32>sfc /scannow

Beginning system scan.  This process will take some time.

Beginning verification phase of system scan.
Verification 100% complete.
Windows Resource Protection found corrupt files but was unable to fix some of them.
Details are included in the CBS.Log windir\Logs\CBS\CBS.log. For example
C:\Windows\Logs\CBS\CBS.log

看起来其他人已经通过发布错误和他们的 CBS.log 获得了类似错误的帮助。在此处上传了我的 CBS.log 的截断版本。https://1drv.ms/u/s!Ai9R9F0A3bajhycmT_DyVhzZA9Ww

日志中似乎有四个文件重复显示已损坏

cryptsvc.dll
cryptnet.dll
d3dcompiler_47.dll
wintrust.dll

以下是 CBS.log 中报告文件损坏的第一个详细条目。

2017-10-11 13:04:49, Error                 CSI    00000430@2017/10/11:17:04:49.559 (F) d:\w7rtm\base\wcp\primitiveinstallers\fileinstaller.cpp(1482): Store corruption detected in function CFileInstaller::ChangeFileCompression expression: 0
  MissingFileSystemResource on resource [109]"\winsxs\x86_microsoft-windows-cryptsvc-dll_31bf3856ad364e35_6.1.7601.23769_none_785f66471253418f\cryptsvc.dll"[gle=0x80004005]
2017-10-11 13:05:01, Error                 CSI    00000431@2017/10/11:17:05:01.406 (F) d:\w7rtm\base\wcp\primitiveinstallers\fileinstaller.cpp(1482): Store corruption detected in function CFileInstaller::ChangeFileCompression expression: 0
  MissingFileSystemResource on resource [109]"\winsxs\x86_microsoft-windows-cryptnet-dll_31bf3856ad364e35_6.1.7601.23769_none_19790dfc7359acea\cryptnet.dll"[gle=0x80004005]
2017-10-11 13:05:13, Error                 CSI    00000432@2017/10/11:17:05:13.533 (F) d:\w7rtm\base\wcp\primitiveinstallers\fileinstaller.cpp(1482): Store corruption detected in function CFileInstaller::ChangeFileCompression expression: 0
  MissingFileSystemResource on resource [122]"\winsxs\x86_microsoft-windows-directx-d3dcompiler_31bf3856ad364e35_6.1.7601.23796_none_eb8e769493af6438\d3dcompiler_47.dll"[gle=0x80004005]
2017-10-11 13:05:22, Error                 CSI    00000433@2017/10/11:17:05:22.867 (F) d:\w7rtm\base\wcp\primitiveinstallers\fileinstaller.cpp(1482): Store corruption detected in function CFileInstaller::ChangeFileCompression expression: 0
  MissingFileSystemResource on resource [109]"\winsxs\x86_microsoft-windows-wintrust-dll_31bf3856ad364e35_6.1.7601.23769_none_f20e06a81194d8a9\wintrust.dll"[gle=0x80004005]

答案1

@magicandre1981评论cryptsvc.dllcryptnet.dllwintrust.dll来自五月汇总

我进行了一些谷歌搜索x86_microsoft-windows-directx-d3dcompiler_31bf3856ad364e35_6.1.7601.23796_none_eb8e769493af6438\d3dcompiler_47.dll,这让我回到了知识库 4019990我可以d3dcompiler_47.dll从中提取一份好的副本。

  1. 从更新中提取文件

我第一次用

expand windows6.1-kb4019264-x86_aaf785b1697982cfdbe4a39c1aabd727d510c6a7.msu -f* c:\temp\kb4019264

然后

cd c:\temp\kb4019264
expand Windows6.1-KB4019264-x86.cab -F:* .\kb4019264\Windows6.1-KB4019264-x86
  1. 代替

我找到了 Windows6.1-KB4019264-x86 中的每个 dll,然后将其复制到 C:\Windows\WinSxS 中的正确位置。对于每个文件

a. 将文件夹和文件的所有者设置为我自己

e.g. C:\Windows\winsxs\x86_microsoft-windows-cryptsvc-dll_31bf3856ad364e35_6.1.7601.23769_none_785f66471253418f

对我来说,文件夹已经在那里了,只是根本没有文件。我猜其他人可能会看到文件夹完全不见了,或者文件夹和文件都存在,但文件却损坏了。将自己添加为文件夹的用户,并通过转到文件夹属性并使用“安全”选项卡上的“高级”按钮,让自己完全控制文件夹

b. 将dll的拷贝好后复制到文件夹中。

c. 为了一致性和安全性,我将刚刚创建的文件夹和新文件的所有者改回 NT SYSTEM\TrustedInstaller 用户,并将我自己从文件夹和文件的用户中删除

我现在可以成功安装所有待处理的 Windows 更新,包括上面的 KB4041681 和 KB4041083,并安装 .NET Framework 4.7 和 VS 2017 Build Tools。

相关内容