PowerShell 计划作业未在启动时运行

PowerShell 计划作业未在启动时运行

我正在尝试创建一个在 Windows Server 2012 R2 Core 上启动时运行的作业。该作业运行一个连接到网络共享的脚本,然后安装位于该共享上的 VHD。

脚本本身可以运行,当使用-RunNow参数注册时,作业会被触发并按预期运行。使用Start-JobCmdlet 运行作业也可以正常工作。

但是,该作业不会像其触发器中指定的那样在启动时触发。

我为创造这份工作做了什么:

$Trigger = New-JobTrigger -AtStartup  
$JobOptions = New-ScheduledJobOption -RunElevated -RequireNetwork  
Register-ScheduledJob -FilePath C:\Scripts\Test.ps1 -Name Test -Trigger $Trigger -ScheduledJobOption $JobOptions -RunNow

执行此操作后,我可以清楚地看到其运行结果。但是重新启动服务器时结果却不存在,但作业显示它是在重新启动后不久最后一次运行的。

答案1

使用 New-JobTrigger cmdlet 创建启动触发器时,最好指定 30 秒或更长的随机延迟时间,以避免启动时发生冲突。这也有助于确保作业成功的可能性更大。

$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:30

您还想在重新启动并使用 cmdlet 重新登录后检查作业的状态Get-Job

相关内容