我们有多个 WSUS 服务器,但为了举例,我们将只关注一个 WSUS 服务器。
情况如下:
- 我有多个 Windows 更新补丁需要在近 1000 台机器上下载并安装。
某些机器上有超过 250 个 Windows 更新补丁尚未下载或安装。
如果我们连续推送(下载并安装)这些补丁(在单台机器上),有时会遇到一些麻烦,所有补丁都会被卸载,所以我们需要重新下载所有补丁,然后逐个重新安装这 30 个补丁,以确保它们被正确安装。
我想创建一个 .bat 或 .vbs 脚本(我也需要在 Windows XP 机器上执行它)以便在 Windows 更新有 30 个补丁时停止安装过程,因为实际上我正在手动执行此操作并且找不到我想要的内容。
手动停止安装:
答案1
我希望你现在已经解决了这个问题,但是如果你还没有解决的话,可以采取这里的方法。
无法将自动更新配置为一次性仅安装一定数量的更新。
但是,自动更新并不是唯一的解决方案。您可以编写一个脚本,使用 Windows 更新代理 API 按照您自己的计划安装下载。
剧本“搜索、下载和安装更新”微软网站上的 WUA API 是一个很好的起点。您实际上根本不需要了解 WUA API 就可以知道它在做什么:
- 它会搜索所有适用的更新并将其列出。
- 它会下载找到的所有更新。
- 它会检查哪些更新已成功下载,然后安装它们。
修改此脚本以执行您想要的任何行为非常容易(如果您遇到无法解决的挑战,Stack Overflow 上的人们可以为您提供帮助)。因此,例如,如果您不想一次下载和安装超过 30 个更新,您只需找到脚本中的以下部分:
Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")
For I = 0 to searchResult.Updates.Count-1
并将其更改为:
Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")
updateDownloadCount = searchResult.Updates.Count-1
If updateDownloadCount > 30 Then
updateDownloadCount = 30
End If
For I = 0 to updateDownloadCount-1
现在脚本将仅下载并安装搜索中找到的前 30 个更新。