KB4041681 および KB4041083 のインストール中にエラー コード 0x80073712 が発生する

KB4041681 および KB4041083 のインストール中にエラー コード 0x80073712 が発生する

Orcale Virtual Box 上の VM で実行されている Windows 7 SP1 x86 でエラーが発生しています。

Windows Update 経由で KB4041681 および KB4041083 をインストールすると、エラー コード 0x80073712 が表示されます。これらの更新プログラムを手動でインストールしようとしましたが、見つけられる限りのことをすべて試しましたが、問題を解決できません。Visual 2017 ビルド ツールまたは .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

ログに破損していると繰り返し記録されているファイルが4つあります。

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

フォローで特定されたコメントそれはcryptsvc.dllcryptnet.dllそして wintrust.dllから来た5月のロールアップ

グーグルで調べx86_microsoft-windows-directx-d3dcompiler_31bf3856ad364e35_6.1.7601.23796_none_eb8e769493af6438\d3dcompiler_47.dllてみたら、KB4019990そこから適切なコピーを抽出することができました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ユーザーに戻し、フォルダとファイルのユーザーとしての自分自身を削除しました。

これで、上記の KB4041681 および KB4041083 を含む保留中のすべての Windows 更新プログラムを正常にインストールし、.NET Framework 4.7 および VS 2017 ビルド ツールをインストールできるようになりました。

関連情報