0

powershell 3 中的新预定作业看起来很棒,但令我恐惧的是,我无法让它们工作。

Register-ScheduledJob -FilePath V:\scripts\testJob.ps1 -Name Test
$t = New-JobTrigger -At 6PM -Once
Add-JobTrigger -Trigger $t -Name Test

我从来没有看到任何错误或任何东西,但脚本没有执行。如果我打开任务计划程序,我可以看到该作业并且它说它“运行”。但在历史上有一个“动作完成”

Task Scheduler successfully completed task "\Microsoft\Windows\PowerShell\ScheduledJobs\Test" , instance "{a117256e-c3f2-42a7-a290-f21aeb6b2260}" , action "StartPowerShellJob" with return code 1.

我已经尝试在任务调度程序中处理计划任务,但没有得到任何结果。有没有人有任何想法?

脚本看起来像这样:

$path = "C:\temp\jobbit.log"
Get-Date | Out-File -FilePath $path -Append
4

2 回答 2

2

在使用任务计划程序本身运行 PowerShell 脚本时,我遇到了类似的问题。我最终让它工作的方式是直接调用 PowerShell 并将我想运行的脚本作为参数传递

在您的情况下,如果我正确理解 cmdlet 语法,它将是:

Register-ScheduledJob -Name Test
-FilePath C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
-ArgumentList ("-NonInteractive","C:\scripts\testJob.ps1")

我假设计划任务的运行时环境根本不会使用 PowerShell 自动运行 ps1 文件。

于 2013-03-30T02:16:46.713 回答
2

很抱歉恢复一个旧线程,但对于那些四处寻找答案的人......

我在 Windows Server 2012 R2 上遇到了同样的问题。解决方案既简单又令人愤怒。

我所要做的就是从“程序/脚本”中删除“.exe”。而已。它应该是:

powershell

并不是

powershell.exe

这当然是没有看到你的命令参数的其余部分。我不知道为什么这会奏效。

于 2016-09-21T23:36:08.543 回答