gpt4 book ai didi

powershell - 如何将参数传递给 Windows 计划任务?

转载 作者:行者123 更新时间:2023-12-02 23:49:54 30 4
gpt4 key购买 nike

我需要将参数传递给使用 Windows 计划任务运行的 PowerShell 脚本。
计划任务使用 cmd 从 Azure 管道运行 Start-ScheduledTask -TaskName "ExampleTask*"命令
Scheduled Task image
计划任务有这样的 PS 脚本:

param(
[Parameter(Mandatory = $true)]
$var
)

echo $var
我需要改变 $var动态从 Azure DevOps 管道。
有没有办法做到这一点?

最佳答案

您可以使用 Set-ScheduledTask使用来自 Azure Pipeline 任务的动态变量更新现有的 ScheduledTask。请参阅以下步骤。
1、在你的azure管道中创建变量,如果是凭证,将变量类型改为secret。见下文:我创建了 用户 , 密码 , 动态变量 在管线中
enter image description here
2、在你的管道中添加一个powershell任务来更新你现有的ScheduledTask。
我设置了参数 在我的计划任务中:-NoProfile -ExecutionPolicy Bypass -File "c:\test\scheduled.ps1" -var "$(DynamicVariable)"'请参阅 Powershell 任务中的以下脚本。

#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"
如果要设置变量 DynamicVariable动态地在管道中。您可以使用 logging commands "##vso[task.setvariable variable..].. .
在上面的 powershell 任务之前添加另一个 powershell 任务以运行以下命令: echo "##vso[task.setvariable variable=DynamicVariable]newValue"

关于powershell - 如何将参数传递给 Windows 计划任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62818730/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com