工作已经开始了我们照顾客户的一个新的焦点,试图更主动,而不仅仅是对问题作出反应。 部分重点是确保服务器是最新的。 我们部署了一个GP来进行服务器更新(计算机configuration>pipe理模板> Windows组件> Windows更新>configuration自动更新)。
我们现在需要一种方法来确保服务器只在特定时间重启,而不是在完成时重启。 我发现我的想法是这里的答案,但它只是为Server 2003,而不是2008年和2012年,我需要。 有没有类似的GP,我可以使用? 计划是让服务器自动扫描,下载并安装一周的更新,任何需要重启的安装都会在周末进行。
这里的窍门是没有Windows Update通过自动更新机制进行安装。 您可以将其设置为自动下载,但是对于自动安装,除非有用户login到系统,否则没有办法阻止重新引导计时器触发,例如使用自动重新启动与login用户的计划自动更新安装策略。 由于这是针对服务器的,我将假设这不是默认情况,并且没有人login并不意味着此时计算机的资源不是必需的。
设置一个计划的任务,将触发安装更新,并报告更新完成时,或其他一些行动,以便您知道计算机到期重新启动。
我很快修改了这里find的脚本以满足您的需求:
# Author: Gregory Strike # Website: www.GregoryStrike.com # Date: 02-19-2010 # Information: This script was adapated from the WUA_SearchDownloadInstall.vbs VBScript from Microsoft. It uses the # Microsoft.Update.Session COM object to query a WSUS server, find applicable updates, and install them. # < --- SNIP --- > $UpdateSession = New-Object -Com Microsoft.Update.Session $UpdateSearcher = $UpdateSession.CreateUpdateSearcher() $SearchResult = $UpdateSearcher.Search("IsInstalled=0 and Type='Software'") $UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl For ($X = 0; $X -lt $SearchResult.Updates.Count; $X++){ $Update = $SearchResult.Updates.Item($X) If ($Update.IsDownloaded) { $Null = $UpdatesToInstall.Add($Update) } } If ($Install.ToUpper() -eq "Y" -or $Install.ToUpper() -eq "YES"){ Write-Host("") Write-Host("Installing Updates...") -Fore Green $Installer = $UpdateSession.CreateUpdateInstaller() $Installer.Updates = $UpdatesToInstall $InstallationResult = $Installer.Install() $ResultsBody = "List of Updates Installed with Results:" For ($X = 0; $X -lt $UpdatesToInstall.Count; $X++){ $ResultsBody = $ResultsBody + "`r`n" + $UpdatesToInstall.Item($X).Title + ": " + $InstallationResult.GetUpdateResult($X).ResultCode } If ($InstallationResult.RebootRequire -eq $True){ Send-MailMessage -From [email protected] -To [email protected] -Subject "Server has installed updates that require a reboot" -Body } else { Send-MailMessage -From [email protected] -To [email protected] -Subject "Server has installed updates that do not require a reboot" -Body } }
注意:
您可以使用链接的原始脚本,并修改它以执行检测和下载,在这种情况下,最好禁用“configuration自动更新”策略。
附录:
Microsoft脚本中心有一个Windows Update PowerShell模块 ,它提供了轻松编写自己的Windows Update脚本所需的function。 事实上,在search的第一页上有很多很好的资源(在撰写本文时):powershell windows update