Можно ли зарегистрировать запланированное задание powershell из другого запланированного задания? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть набор сценариев PS1, и цель состоит в том, чтобы автоматизировать регистрацию заданий PowerShell.

#Manager.ps1
function registerJobs {
    & "C:\scripts\Worker1.ps1"
    & "C:\scripts\Worker2.ps1"
}
#Worker1.ps1
$trig = New-JobTrigger -Daily -At "5:00 AM"
Register-ScheduledJob -Name doSomething -FilePath C:\scripts\doSomething.ps1 -Trigger $trig 

#Worker2.ps1
$trig = New-JobTrigger -Daily -At "6:00 AM"
Register-ScheduledJob -Name doSomethingElse -FilePath C:\scripts\doSomethingElse.ps1 -Trigger $trig 

Если запустить Manager.ps1 из консоли Powershell Результаты: Оба делают doSomething и doSomethingElse отображается в запланированных задачах, как и ожидалось

Если Manager.ps1 запланирован как задание.

$trig = New-JobTrigger -Daily -At "0:00 AM"
Register-ScheduledJob -Name Manager -FilePath C:\scripts\Manager.ps1 -Trigger $trig 

Результаты:

  1. Manager.ps1 зарегистрирован в Запланированные задачи
  2. Но когда вы запускаете его, запланированное задание «Менеджер» всегда находится в состоянии «Задача выполняется», а задания doSomething и doSomethingEkse никогда не отображаются в Запланированные задания

Идея состоит в том, чтобы иметь менеджера, который будет искать скрипты в некоторой папке, и если появится новый скрипт, он будет автоматически выполнен и задание зарегистрировано.

Возможно ли это сделать?

1 Ответ

0 голосов
/ 22 апреля 2020

Я продумал проблему. Все, что мне нужно было сделать, это переместить Worker1 и Worker2 в Manager, а затем зарегистрировать их как запланированное задание.

...