Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新启动后使用任务计划程序启动PowerShell脚本_Powershell_Scripting_Scheduled Tasks_Scheduledexecutorservice - Fatal编程技术网

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

重新启动后使用任务计划程序启动PowerShell脚本,powershell,scripting,scheduled-tasks,scheduledexecutorservice,Powershell,Scripting,Scheduled Tasks,Scheduledexecutorservice,因此,我正在尝试编写一个powershell脚本,该脚本执行以下操作: 下载并安装Windows更新(完成) 自动重新启动(完成) 重新启动后检查是否仍有任何更新 返回开始,直到没有更多的更新 我已经按照以下方式构建了我的powershell脚本: Import-Module PSWindowsUpdate Get-Command –module PSWindowsUpdate Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279

因此,我正在尝试编写一个powershell脚本,该脚本执行以下操作:

  • 下载并安装Windows更新(完成)
  • 自动重新启动(完成)
  • 重新启动后检查是否仍有任何更新
  • 返回开始,直到没有更多的更新
我已经按照以下方式构建了我的powershell脚本:

Import-Module PSWindowsUpdate

Get-Command –module PSWindowsUpdate

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

Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot
这很好用

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

我想做的是在每次重新启动后继续运行上面的脚本,直到没有更多的更新需要下载和安装

我发现Windows中的
任务调度程序
可能很方便

我还构建了一个“逻辑”来检查是否还剩下任何更新(并安装它们):

上面的代码也可以完美地工作

我的问题是如何在每次重新启动后让这个脚本(或多个脚本?)运行,直到没有更多的更新


谢谢

您已经走上了正确的道路。只需将计划任务添加到以脚本为参数运行powershell.exe的系统中,并将任务触发器设置为“启动时”

将比滚动自己的脚本更容易管理此任务

然后使用以下命令保存脚本:

# Update Windows and reboot if necessary
Install-WindowsUpdate -AcceptEula
Boxstarter还可以使用Chocolate自动安装和设置其他软件。有关大量示例,请参见


如果工作失败,或者如果您真的想启动自己的更新脚本,您需要查看工作流,它可以在重新启动后从停止的位置继续。查看这两个链接(,)以获取示例

非常感谢你,但我在想,这是否意味着每次重新启动后我的脚本都会继续运行(即使没有更多更新了?)。或者您是否将此视为“长期使用的脚本”?您可以使用此cmdlet向脚本添加逻辑,以便在没有更多更新要安装时删除计划任务:
Unregister ScheduledTask
(请参阅:)谢谢!我会查清楚的
# Update Windows and reboot if necessary
Install-WindowsUpdate -AcceptEula