虽然我通常使用 Windows 服务器的预烘焙镜像,但偶尔会遇到这样的情况:我必须从头开始设置一个镜像,并经历检查更新、安装更新然后重新启动的极其繁琐的过程。很多很多很多次。
我正在尝试编写一个简单的脚本来自动执行此操作。
检查和安装更新非常简单:
wuauclt.exe /detectnow /updatenow
重启也同样简单:
shutdown /r /t 0
但我想做的是创建一个 PowerShell 工作流程,在重新启动后继续运行,循环运行上述命令。
我还没有弄清楚的领域是:
- 如何检查更新是否已完成。
- 如何测试是否没有剩余更新可供安装(AKA Windows 已完全更新并且脚本可以停止)。
最佳答案
使用 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
}
关于windows - 如何测试Windows Server是否完全更新? (尝试创建更新/重启循环脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30968999/