如何使用Windows任务调度程序自动执行PowerShell脚本?

我有一个发送电子邮件的PowerShell脚本。 我想每1分钟自动执行一次脚本。 我怎样才能做到这一点,使用任务调度?

目前我已经创build了一个任务,并提供了我的脚本的path。 但是这个调度程序打开我的脚本,而不是执行。

创build计划任务并将操作设置为:

程序/脚本:Powershell.exe

参数:-File“C:\ Users \ MyUser \ Documents \ ThisisMyFile.ps1”

以下是使用PowerShell 3.0或4.0 for -RepeatIndefinitely和up的示例:

 # Trigger $middayTrigger = New-JobTrigger -Daily -At "12:40 AM" $midNightTrigger = New-JobTrigger -Daily -At "12:00 PM" $atStartupeveryFiveMinutesTrigger = New-JobTrigger -once -At $(get-date) -RepetitionInterval $([timespan]::FromMinutes("1")) -RepeatIndefinitely # Options $option1 = New-ScheduledJobOption –StartIfIdle $scriptPath1 = 'C:\Path and file name 1.PS1' $scriptPath2 = "C:\Path and file name 2.PS1" Register-ScheduledJob -Name ResetProdCache -FilePath $scriptPath1 -Trigger $middayTrigger,$midNightTrigger -ScheduledJobOption $option1 Register-ScheduledJob -Name TestProdPing -FilePath $scriptPath2 -Trigger $atStartupeveryFiveMinutesTrigger 

而不是只在任务计划程序中使用脚本的path,您应该使用您的脚本在任务计划程序中启动Powershell,例如

 C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NonInteractive -File "C:\Path\To\Your\PS1File.ps1" 

powershell /? 对这些开关的解释。

如果你仍然有问题,你应该阅读这个问题

在我的情况下,我的脚本有参数,所以我设置:

参数:-Command“&c:\ scripts \ myscript.ps1 myParam1 myParam2”

经过几个小时对互联网的testing和研究后,终于find了如何使用任务计划程序启动我的PS脚本,感谢以下video: https : //www.youtube.com/watch?v = oJ4nktysxnE

程序/脚本 – >通过powershell.exe放完整path

 C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe 

添加参数 – >脚本的完整path和脚本,没有任何“”

开始(可选) – >你的脚本所在的目录,没有任何“”