我想自动安装Windows服务器更新(由WSUS支持),但似乎无法得到wuauclt /updatenow实际启动安装(或任何其他未wuauclt /updatenow交换机)。
它在testing工作站上工作,但我相信这是因为安装设置为“每天自动”,而服务器设置为“仅检测”。 我正计划使用另一个更强大的第三方调度程序来安装一周中的某些日子的更新,但也是每个月的几周。 即服务器A在月份的第一个星期天,服务器B,本月的第二个星期天等安装。
基本上我正在寻找一个脚本化的相当于单击服务器上的Windows Update GUI对话框上的“安装更新”button。
看起来你可以用COM API来做到这一点(所以你可以使用任何脚本语言,可以使用COM – VBScript,PowerShell等)。
下面的VBScript片段将search未决的更新,下载并安装它们。
Option Explicit Dim objUpdateSess Dim objUpdateSearcher Dim objDownloader Dim objInstaller Dim objSearchResult Set objUpdateSess = CreateObject("Microsoft.Update.Session") Set objUpdateSearcher = objUpdateSess.CreateUpdateSearcher() Set objDownloader = objUpdateSess.CreateUpdateDownloader() Set objInstaller = objUpdateSess.CreateUpdateInstaller() ' Search for pending updates Set objSearchResult = objUpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0 and Type='Software'") ' Download the pending updates objDownloader.Updates = objSearchResult.Updates objDownloader.Download() ' Install the pending updates objInstaller.AllowSourcePrompts = False objInstaller.ForceQuiet = True objInstaller.Updates = objDownloader.Updates ObjInstaller.Install()
这个脚本绝对没有错误检查,所以不要使用它! 人们写了一些小脚本来自动完成整个networking的过程(一些发送电子邮件,完成后自动重新启动等等)。 做一些search,看看你想出什么或滚动你自己的。
Microsoft有一个很好的示例vbscript用于通过Windows Update安装更新, url为: http://msdn.microsoft.com/en-us/library/windows/desktop/aa387102( v=vs.85) .aspx
我会为你的使用做一些调整,比如自动接受所有的EULA,而不是停下来提出任何问题。
编辑本地组策略是我所能想到做的事情中最接近的事情。
如果系统是域的一部分,您也可以使用组策略来完成此操作。