我正在尝试创建一个在
Windows Server 2012 R2 Core上启动时运行的作业.作业运行连接到网络共享的脚本,然后安装位于该共享上的VHD.
脚本本身可以工作,当使用-RunNow参数注册时,作业将被触发并按预期运行.使用Start-Job Cmdlet运行作业也可以正常工作.
但是,作业不会像启动时那样在启动时触发.
我做了什么来创造这份工作:
$Trigger = New-JobTrigger -AtStartup $JobOptions = New-ScheduledJobOption -RunElevated -RequireNetwork Register-ScheduledJob -FilePath C:\Scripts\Test.ps1 -Name Test -Trigger $Trigger -ScheduledJobOption $JobOptions -RunNow
这样做后我可以清楚地看到它的结果.但是当重新启动服务器时,结果不存在,但是作业说它在重新启动后不久就运行了.
使用New-JobTrigger cmdlet创建启动触发器时,最好指定30秒或更长的随机延迟时间以避免启动时发生冲突.这也有助于确保工作成功的可能性更大.
$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:30
您还需要在重新启动并使用Get-Job cmdlet重新登录后检查作业的状态.