我正在使用 WSUS 测试 Windows 7 到 Windows 10 的升级,以及将 Creators 更新推广到我们的 Windows 10 机器。我正在使用三台机器进行测试 - 一台运行 Windows 7 Pro 的戴尔台式机、一台运行 Windows 7 Pro 的 VirtualBox VM 和一台运行 Windows 10 Pro 版本的戴尔 XPS。WSUS 服务器在 Sever 2012 R2 机器上运行。Windows 10 XPS 具有启用了 TPM 的 BitLocker,而 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 未显示任何正在下载的内容。
到目前为止我已经尝试过:
- 检查是否安装了用于解密 ESD 内容的 KB3159706
- 检查 KB3095113 的先决条件是否全部安装
- 检查了 KB3095113 是否支持 WSUS 对 Windows 10 功能升级的支持。
- 在 IIS 服务器上为 .esd 文件设置 MIME 类型(上述更新应该已经对其进行了排序)。
- 从机器中删除 Windows 更新缓存,停止 BITS/Windows 更新服务并重新启动。
- 重新启动 IIS 网站
- 重新启动 WSUS 服务器
- 检查 Windows 防火墙状态(服务器上已禁用)
- 要求 Windows 10 机器从 Windows 更新而不是 WSUS 获取更新(这似乎可以下载并安装成功)所以这让我认为这是我们的 WSUS 服务器的问题。
5 月 24 日更新:我已构建另一台 WSUS 服务器,但同样出现了问题 - 客户端显示“正在下载 0%”。我已在 Windows 更新中直接检查机器,升级过程一切正常,因此我现在真的不确定问题所在。
答案1
我在这里遇到了类似的问题,今天找到了解决方案。但我没有从 Windows 7 升级到 Windows 10,只是从 Windows 10 1607 升级到 1703。它可能对你有帮助,也可能没用。我不确定。
如果在安装 KB3159706 之前将 1703 升级同步到 WSUS,则在执行 KB3159706 的必要更新及其安装后服务后(关联),我们仍然需要按照这里的说明进行操作:
基本上需要执行 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 更新->尝试以管理员身份进行故障排除
在所有这些活动中,无需重新启动。然后重试并祝你好运!