使用任务计划程序重新启动后,开始PowerShell脚本
问题描述:
所以我想写一个PowerShell脚本,做以下操作:使用任务计划程序重新启动后,开始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.exe,并将任务触发器设置为“启动时”
答
Boxstarter比您滚动自己的脚本更容易管理此任务。
然后保存脚本使用下面的命令:
# Update Windows and reboot if necessary
Install-WindowsUpdate -AcceptEula
Boxstarter还可以自动安装和其他软件负载,使用的巧克力的设置。请参阅this link以获取大量示例。
如果工作失败,或者如果您确实想要推出自己的更新脚本,则需要查看工作流程,这些工作流程可以在重新启动后从停止的位置恢复。检查这两个链接(link1,link2)例如
非常感谢TToni,但我在想,这是不是说我的脚本在每次重新启动后都会继续运行(即使没有更多的更新了?) 。或者你是否将此视为“长期使用的脚本”? –
您可以向脚本添加逻辑,以便在没有更多安装更新时通过使用此cmdlet删除计划任务:'Unregister-ScheduledTask' (请参阅:https://blogs.technet.microsoft.com/heyscriptingguy/2015/01/16/powertip-use-powershell-to-delete-scheduled-task /) –
谢谢马克!我会毫不犹豫地进行检查 –