如何testingWindows Server是否完全更新? (试图创build一个更新/重启循环脚本)

尽pipe我通常使用Windows Server的预先烘焙的镜像,但是偶尔会遇到这种情况:我必须从头开始设置一个镜像,然后执行检查更新,安装并重新启动这个令人难以置信的繁琐过程。 很多很多次

我正在尝试编写一个简单的脚本来自动执行此操作。

检查和安装更新很简单:

wuauclt.exe /detectnow /updatenow 

重新启动也很简单:

 shutdown /r /t 0 

但是我想要做的是创build一个PowerShell工作stream程,在重启后继续运行,在循环中运行上述命令。

我没有想到的领域是:

  • 如何检查更新是否完成。
  • 如何testing没有剩余的更新可用于安装(AKA Windows已完全更新,脚本可以停止)。

使用更新搜索器来检查未决更新:

 $criteria = "Type='software' and IsAssigned=1 and IsHidden=0 and IsInstalled=0" $searcher = (New-Object -COM Microsoft.Update.Session).CreateUpdateSearcher() $updates = $searcher.Search($criteria).Updates if ($updates.Count -ne 0) { # $updates pending } else { # system up-to-date }