【发布时间】:2017-07-06 19:57:50
【问题描述】:
所以我正在尝试编写一个执行以下操作的 powershell 脚本:
- 下载并安装 Windows 更新(完成)
- 自动重启(完成)
- 重启后检查是否仍有更新
- 回到开始,直到没有更多更新为止
我已经构建了我的 powershell 脚本如下:
Import-Module PSWindowsUpdate
Get-Command –module PSWindowsUpdate
Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d
Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
效果完美。
但是,根据某些情况,重新启动后仍有可能存在可供下载和安装的更新。
我想要做的是在每次重新启动后继续运行上面的脚本,直到没有更多的更新可供下载和安装。
我发现 Windows 中的Task scheduler可能很方便。
我还构建了一个“逻辑”来检查是否还有任何更新(并安装它们):
$Output = (Get-WUInstall -MicrosoftUpdate -ListOnly) | Out-String
if($Output.Contains("Update"))
{
Write-Host "Updates Available, they will be installed..."
Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
}else
{
Write-Host "There are no updates available. "
}
上面的代码也可以完美运行。
我的问题是告知在每次重新启动后我可以以何种方式让这个脚本(或多个脚本?)运行,直到没有更多更新......
谢谢
【问题讨论】:
标签: powershell scripting scheduled-tasks scheduledexecutorservice