重启后使用任务计划程序启动 PowerShell 脚本

Using the task scheduler to start a PowerShell script after reboot

所以我正在尝试编写一个执行以下操作的 powershell 脚本:

我已经构建了如下的 powershell 脚本:

Import-Module PSWindowsUpdate

Get-Command –module PSWindowsUpdate

Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d 

Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot

效果完美。

但是,根据某些情况,重启后可能仍有可用更新可供下载和安装。

我想做的是在每次重新启动后保留 运行上面的脚本,直到没有更多更新可供下载和安装。

我发现 Task schedulerin Windows 可能很方便。

我还构建了一个 'logic' 来检查是否还有任何更新(并安装它们):

$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,并将任务触发器设置为 "At startup"

Boxstarter 比您滚动自己的脚本更容易管理。

然后你用这个命令保存一个脚本:

# Update Windows and reboot if necessary
Install-WindowsUpdate -AcceptEula

Boxstarter 还可以使用 Chocolatey 自动安装和设置大量其他软件。有关大量示例,请参阅 this link

如果无法正常工作,或者如果您真的想滚动自己的更新脚本,则需要查看工作流程,这些工作流程可以在重新启动后从中断的地方恢复。查看这两个链接 (link1, link2) 以获取示例