Вы можете использовать Set-ScheduledTask
для обновления существующей ScheduledTask с динамическими c переменными из Azure Pipeline task. См. Шаги ниже.
1, Создайте переменные в конвейере azure, измените тип переменной на секретный, если это учетные данные. См. Ниже: я создал Пользователь , Пароль , DynamicVariable в конвейере
2, Add a powershell task in your pipeline to update your existed ScheduledTask.
I set the Arguments in my scheduled task as this: -NoProfile -ExecutionPolicy Bypass -File "c:\test\scheduled.ps1" -var "$(DynamicVariable)"'
See below script in the Powershell task.
#update the Argument with variable defined in the pipeline $(DynamicVariable)
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument '-NoProfile -ExecutionPolicy Bypass -File "c:\test\scheduled.ps1" -var "$(DynamicVariable)"'
#update the scheduled task
Set-ScheduledTask -Password "$(Password)" -User "$(User)" -TaskName "PipelineTask" -Action $Action
Start-ScheduledTask -TaskName "MyTask"
If you want to set the variable DynamicVariable
dynamically in the pipeline. You can use команды ведения журнала "##vso[task.setvariable variable..]..
.
Добавьте еще одну задачу PowerShell перед указанной выше задачей PowerShell для выполнения следующих команд:
echo "##vso[task.setvariable variable=DynamicVariable]newValue"