在 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.dll
,cryptnet.dll
&
wintrust.dll
来自五月汇总
我进行了一些谷歌搜索x86_microsoft-windows-directx-d3dcompiler_31bf3856ad364e35_6.1.7601.23796_none_eb8e769493af6438\d3dcompiler_47.dll
,这让我回到了知识库 4019990我可以d3dcompiler_47.dll
从中提取一份好的副本。
- 从更新中提取文件
我第一次用
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
- 代替
我找到了 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。