我试图自动完成配置计划任务的过程,这样我就可以在数十台计算机上创建相同的任务。现在,我有一个非常简单的脚本应该添加一个作业:
import-module PSScheduledJob
$trig=new-jobtrigger -Once -At ((get-date).addminutes(1))
Register-scheduledjob -FilePath <Test_File.ps1> -Name "Tester" -Trigger $trig
从ISE运行时,测试文件工作正常,但在等待计划任务工作后什么都不做。此外,任务计划程序GUI中或我使用get-job
cmdlet时都没有显示任何内容。但是,运行get-scheduledjob
,我确实看到了schedulejob对象就像它应该的那样;似乎在某处断开连接。
最后,我无法在我的环境中下载任何其他模块,否则我会尝试其他路线。
我是以管理员身份运行它。
更新:我现在在任务调度程序GUI中看到任务。但无论何时运行,它都会在执行任何操作之前超时。仍然不确定为什么它无法调用我的脚本。
答案 0 :(得分:1)
试试这个......看起来你并没有指向powershell,因为脚本只是用作参数。您尝试安排的操作是运行powershell,脚本是参数。
$resumeActionscript = '-File "c:\ScriptPath\Script.ps1"'
$act = New-ScheduledTaskAction -Execute "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Argument $resumeActionscript
$trig = New-ScheduledTaskTrigger -Once -At ((get-date).addminutes(1))
Register-ScheduledTask -TaskName ResumeWFJobTask -Action $act -Trigger $trig -RunLevel Highest
答案 1 :(得分:0)
也许这个答案可以帮助您完成所需的各种设置,以达到理想的效果:
Powershell run job at startup with admin rights using ScheduledJob
根据您的需要定制设置......
答案 2 :(得分:0)
对于那组命令没有明确的文档,我可以找到的博客文章都充满了语法错误并且无法获得结果。
我的猜测是你没有正确提升(右键单击以管理员身份运行),或者你需要将任务启动powershell作为可执行文件,而不是.ps1文件。
答案 3 :(得分:0)
这并不能直接回答我原来的担忧,但我认为观看这篇文章的人会很感激这个答案。使用批处理脚本而不是PowerShell来创建计划任务。这行代码完美无缺:
schtasks /create /tn "Tester" /tr "powershell 'Path_to_PS1'" /sc daily /st 19:00:00
零问题,至少对于这个简单的用途。