私は、WSUSを使用したWindows 7からWindows 10へのアップグレードのロールアウトをテストしているほか、作成者の更新をWindows 10マシンにロールアウトしています。私は3台のマシンでテストしています-Windows 7 Proを実行しているDellデスクトップ、VirtualBox VM Windows 7 Proを実行している、およびWindows XPを実行しているDell XPSビルド。WSUSサーバーはサーバー2012で実行されていますR2マシン:Windows 10 XPSにはTPMが有効なビットロッカーがありますが、Windows 7マシンにはありません。
マシンは、Windows 10アップグレード用のテストWSUSグループに属しています。アップグレードを検索すると、Windows 7マシンのWindowsUpdate.logに、ダウンロードが開始され、その後すぐに失敗することが表示されます。 Windows Updateの更新履歴の設定で、更新の状態が "失敗"と表示されますが、インストールされています。
WSUSログには、「Windowsはエラー0x80240020で次の更新のインストールに失敗しました:Windows 7および8.1からWindows 10 Pro、バージョン1703へのアップグレード、en-us。」
2017-05-09 11:41:58:028 804 358 Report REPORT EVENT: {07B79E9B-0A6D-4D08-AA68-38179A2C566C} 2017-05-09 11:41:50:707+0100 1 182 101 {081B357C-B9A3-497C-8E8C-206E1D723B29} 201 80240020 AutomaticUpdates Failure Content Install Installation Failure: Windows failed to install the following update with error 0x80240020: Windows 7 and 8.1 upgrade to Windows 10 Pro, version 1703, en-us.
Windows 10マシンは、アップデートが有効であることを示していますが、ダウンロードされた0%のままです。 LANケーブルにネットワークアクティビティはなく、TCPViewはダウンロードされているものを何も表示しません。
これまでに試したこと:
5月24日更新:別のWSUSサーバーを構築しましたが、同じ問題がこのサーバーでも発生しています。クライアントは「ダウンロード0%」で表示されています。 Windows Updateから直接確認するときにマシンを正常にアップグレードしたので、今のところ問題が本当にわかりません。
私はここで同様の問題を抱えており、今日の私の解決策を見つけました。しかし、私はWindows 7からWindows 10にアップグレードするのではなく、Windows 10 1607から1703にアップグレードするだけでした。よく分かりません。
KB3159706がインストールされる前に1703アップグレードがWSUSに同期されている場合、KB3159706の必要な更新とそのインストール後のサービス( link )を実行した後も、ここでの指示に従う必要があります。
基本的に、実行する4つのステップがあります。
1-KB3159706がインストールされる前に同期されたパッケージを削除します。 WSUSサーバーのpowershell経由:
Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq "Upgrades"} | Set-WsusClassification -Disable
$s = Get-WsusServer
$1703Updates = $s.SearchUpdates("version 1703")
$1703Updates | foreach { $_.Decline() }
$1703Updates | foreach { $s.DeleteUpdate($_.Id.UpdateId) }
Get-WsusClassification | Where-Object -FilterScript {$_.Classification.Title -Eq "Upgrades"} | Set-WsusClassification
2-WSUSデータベースから、アップグレード1703に関する問題のあるコンテンツを削除し、データベースから実行します。 注意:投稿のSQLスクリプトから末尾のセミコロンを削除します。 「テーブル変数が宣言されていません」のエラーが発生する可能性があります
declare @NotNeededFiles table (FileDigest binary(20) UNIQUE)
insert into @NotNeededFiles(FileDigest) (select FileDigest from tbFile where FileName like '%15063%.esd' except select FileDigest from tbFileForRevision)
delete from tbFileOnServer where FileDigest in (select FileDigest from @NotNeededFiles)
delete from tbFile where FileDigest in (select FileDigest from @NotNeededFiles)`
3-WSUSサーバーで、WSUS GUIまたはpowershellコマンドによる同期を再開します。
$s = Get-WsusServer
$sub = $s.GetSubscription()
$sub.StartSynchronization()
4-エラーが発生したクライアントコンピューターをクライアントコンピューターで修復します。コントロールパネル->トラブルシューティング-> Windows Update->管理者としてトラブルシューティングを試みます。
これらすべてのアクティビティ中に、再起動は必要ありません。その後、再試行して頑張ってください!