harsini Asked: 2020-04-24 00:14:43 +0800 CST2020-04-24 00:14:43 +0800 CST 2020-04-24 00:14:43 +0800 CST WSUS 正在下载数百个被拒绝的旧更新 772 在不应用任何配置和设置更改的情况下,WSUS 服务器在定期与 Microsoft 同步后开始下载从 2009 年到现在(2020 年)的数百个旧更新。它下载了超过 100 GB,我不知道这种行为的原因是什么。我该如何处理? update windows-update wsus 2 个回答 Voted Best Answer harsini 2020-04-24T00:14:43+08:002020-04-24T00:14:43+08:00 这似乎是用户之间的常见问题。使用尝试和错误方法找到摆脱不需要的更新的方法对我有用。拒绝和删除所有旧更新不会解决问题,它们会在下一次同步后返回。以下步骤解决了问题: 如果有高带宽使用和从 WSUS 下载,请断开 Internet。 在 WSUS 控制台中停止服务器同步。 可能有更新仍在等待下载,如下所示: 在 Powershel 脚本下运行以取消它们。之后,下载状态将清除,需要文件的更新将变为 0。 (Get-WsusServer).CancelAllDownloads() Stop-Service -Name WsusService,BITS -Force Remove-Item -Path $env:LOCALAPPDATA\Temp\* -Recurse -ErrorAction SilentlyContinue Remove-Item -Path $env:SystemRoot\Temp\* -Recurse -ErrorAction SilentlyContinue Start-Service -Name WsusService,BITS 在 WSUS 选项页面中禁用“自动批准”,并确保选中仅在获得批准时才下载更新的选项: 拒绝最近下载的所有不需要的旧更新。您可以通过按到达日期对更新进行排序,然后选择并拒绝最近到达的所有旧更新来做到这一点。 使用下面的 Powershell 脚本删除所有拒绝的更新。如果您拒绝了不想被删除的更新,您可以通过修改脚本(例如按到达日期)来缩小选择范围: [reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(); $declined=$wsus.GetUpdates() | Where {$_.IsDeclined -eq $true} $declined| ForEach-Object {$wsus.DeleteUpdate($_.Id.UpdateId.ToString()); Write-Host $_.Title removed } 运行服务器清理。确保检查与更新相关的所有项目。 开始同步。等到同步完成。在此级别同步将需要很长时间,将下载一些演出,并且所有旧更新列表将返回(如果不会,请祝您好运)但由于我们在级别 4 的操作,他们的文件不会下载。 重复第 5 级,但这次是“未批准”更新。 重复第 6 级。我建议在“Powershell ISE”中运行此脚本以获取更新数量(例如 30 次更新,而不是一次全部更新),然后停止它并运行第 11 级以确保您走在正确的道路上。 重复第 7 级和第 8 级。在此级别服务器不应再次下载旧版本。 如果您愿意,将在第 4 级更改的自动批准和下载设置返回到以前的状态。 mschomm 2021-10-01T08:16:03+08:002021-10-01T08:16:03+08:00 在我的安装中,用户@harsini 在步骤 6 中给出的删除拒绝更新的脚本总是遇到超时,因为它首先从 WSUS 服务器获取所有更新,然后才将它们缩小到 PS 端被拒绝的更新。 代替 $declined = $wsus.GetUpdates() | Where {$_.IsDeclined -eq $true} 和 $declined = $wsus.GetUpdates([Microsoft.UpdateServices.Administration.ApprovedStates]::Declined, [DateTime]::MinValue, [DateTime]::MaxValue, $null, $null) 仅直接从 WSUS 服务器获取被拒绝的更新。
这似乎是用户之间的常见问题。使用尝试和错误方法找到摆脱不需要的更新的方法对我有用。拒绝和删除所有旧更新不会解决问题,它们会在下一次同步后返回。以下步骤解决了问题:
如果有高带宽使用和从 WSUS 下载,请断开 Internet。
在 WSUS 控制台中停止服务器同步。
可能有更新仍在等待下载,如下所示:
在 Powershel 脚本下运行以取消它们。之后,下载状态将清除,需要文件的更新将变为 0。
在 WSUS 选项页面中禁用“自动批准”,并确保选中仅在获得批准时才下载更新的选项:
拒绝最近下载的所有不需要的旧更新。您可以通过按到达日期对更新进行排序,然后选择并拒绝最近到达的所有旧更新来做到这一点。
使用下面的 Powershell 脚本删除所有拒绝的更新。如果您拒绝了不想被删除的更新,您可以通过修改脚本(例如按到达日期)来缩小选择范围:
运行服务器清理。确保检查与更新相关的所有项目。
开始同步。等到同步完成。在此级别同步将需要很长时间,将下载一些演出,并且所有旧更新列表将返回(如果不会,请祝您好运)但由于我们在级别 4 的操作,他们的文件不会下载。
重复第 5 级,但这次是“未批准”更新。
重复第 6 级。我建议在“Powershell ISE”中运行此脚本以获取更新数量(例如 30 次更新,而不是一次全部更新),然后停止它并运行第 11 级以确保您走在正确的道路上。
重复第 7 级和第 8 级。在此级别服务器不应再次下载旧版本。
如果您愿意,将在第 4 级更改的自动批准和下载设置返回到以前的状态。
在我的安装中,用户@harsini 在步骤 6 中给出的删除拒绝更新的脚本总是遇到超时,因为它首先从 WSUS 服务器获取所有更新,然后才将它们缩小到 PS 端被拒绝的更新。
代替
和
仅直接从 WSUS 服务器获取被拒绝的更新。