Я пытаюсь создать задание, которое запускается при запуске в Windows Server 2012 R2 Core. Задание запускает сценарий, который подключается к общим сетевым ресурсам, а затем подключает виртуальный жесткий диск, расположенный на этом общем ресурсе.
Сам скрипт работает и при регистрации в -RunNow
параметр, задание запускается и выполняется должным образом. Выполнение работы с Start-Job
Командлет тоже отлично работает.
Однако задание не запускается при запуске, как указано в его триггере.
Что я сделал для создания вакансии:
$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 для создания триггера запуска рекомендуется указать случайный период задержки 30 секунд или более, чтобы избежать конфликтов при запуске. Это также повысит шансы на успех в работе.
$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:30
Вы также хотите проверить статус своей работы после перезапуска и повторного входа в систему с Get-Job
командлет.