如何测试Windows Server是否完全更新? (尝试创建更新/重启循环脚本)

时间:2015-06-21 20:26:23

标签: windows powershell workflow windows-server-2012-r2 windows-update

虽然我通常使用预先出现的Windows服务器图像,但我偶然遇到一种情况,我必须从头开始设置一个,然后经历一个非常繁琐的检查更新,安装它们然后重新启动的过程。很多很多次。

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

检查和安装更新非常简单:

wuauclt.exe /detectnow /updatenow

重启也很简单:

shutdown /r /t 0

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

我没想到的领域是:

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

1 个答案:

答案 0 :(得分:4)

使用update searcher检查待处理的更新:

$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
}