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

kaz*_*mjt 5 powershell windows-server-2012-r2

我正在尝试创建一个在 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
Run Code Online (Sandbox Code Playgroud)

这样做后,我可以清楚地看到它的工作结果。但是当重新启动服务器时,结果不存在,但作业说它是在重新启动后不久运行的。

Col*_*337 3

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

$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:30
Run Code Online (Sandbox Code Playgroud)

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

  • 除了这样做之外,在运行脚本中的命令之前测试是否启动任何所需的服务也可能会有所帮助。 (2认同)