调用Azure REST API获取buildid时无法找到pwsh可执行文件如何解决?
Azure Pipeline PowerShell任务报错修复方案
报错原因
该报错是PowerShell@2任务默认使用跨平台的PowerShell Core(可执行文件名为pwsh)运行脚本,但你当前执行流水线的代理节点未安装PowerShell Core,或是其安装路径未加入系统PATH环境变量,导致系统无法找到对应可执行文件。
修复方案
- 方案1(快速生效,适配Windows代理节点):在
PowerShell@2任务的inputs配置中新增pwsh: false参数,强制任务使用系统自带的Windows PowerShell执行脚本,修改后的完整配置如下:
- task: PowerShell@2 inputs: targetType: 'inline' pwsh: false script: | $organization = "org_name" $project = "project_name" $definitionid = "27" $pat = "eq7pqxcycdp6crbrygwh73ua2kzdvsett3p2sjcx5j" $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $pat))) $baseUrl = "https://dev.azure.com/$organization/$project/_apis/build/latest/$definitionid?api-version=5.1-preview.1" $latestbuild = Invoke-RestMethod -Uri $baseUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET Write-Host $latestbuild.id $id1 = $latestbuild.id Write-Host "##vso[task.setvariable variable=buildid]$id1"
- 方案2(适配Linux/macOS代理节点):在代理节点上安装对应系统版本的PowerShell Core,将其可执行文件路径添加到系统PATH环境变量后重新运行流水线即可。
内容的提问来源于stack exchange,提问作者JCDani
相关产品推荐
相关产品推荐

