You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell禁用Azure DevOps流水线时遇PUT方法不支持错误

解决Azure DevOps流水线禁用脚本的PUT方法错误

错误原因

你调用的_apis/pipelines/<ID>端点不支持PUT请求,该端点仅提供GET操作来获取流水线信息。要修改流水线的启用/禁用状态,需要使用构建定义(Build Definition)API,或者支持修改操作的新版Pipelines API。

修正后的脚本(稳定版方案)

使用Build Definition API来更新流水线的queueStatus:

$project = "<Project-Name>"
$organization = "<Org-Name>"
$pat = "<PAT>"
$definitionId = "<你的流水线定义ID>" # 可在流水线页面URL中找到,格式类似`definitionId=123`

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($pat)"))

$headers = @{
    Authorization = "Basic $base64AuthInfo"
    "Content-Type" = "application/json"
}

# 替换为Build Definition API端点
$definitionUrl = "https://dev.azure.com/$organization/$project/_apis/build/definitions/$definitionId?api-version=6.0"
$definitionDetails = Invoke-RestMethod -Uri $definitionUrl -Method Get -Headers $headers

# 设置queueStatus为disabled(启用则改为enabled)
$definitionDetails.queueStatus = "disabled"

$body = $definitionDetails | ConvertTo-Json -Depth 10
Invoke-RestMethod -Uri $definitionUrl -Method Put -Headers $headers -Body $body -ContentType "application/json"

关键说明

  • 确认Definition ID:可在流水线页面的URL中找到,格式类似https://dev.azure.com/xxx/xxx/_build?definitionId=123,其中123就是Definition ID。
  • 权限要求:你的PAT需要拥有**Build定义(Edit)**权限,否则会返回权限不足的错误。
  • API版本:示例使用api-version=6.0,也可以更新到更高稳定版本(如7.0)以获得更好兼容性。

新版Pipelines API方案(预览版)

如果坚持使用新版Pipelines API,可采用PATCH方法:

$project = "<Project-Name>"
$organization = "<Org-Name>"
$pat = "<PAT>"
$pipelineId = "<你的流水线ID>"

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($pat)"))

$headers = @{
    Authorization = "Basic $base64AuthInfo"
    "Content-Type" = "application/json"
}

$pipelineUrl = "https://dev.azure.com/$organization/$project/_apis/pipelines/$pipelineId?api-version=7.1-preview.1"

# 仅传递需要修改的属性,无需获取全部详情
$body = @{
    configuration = @{
        queueStatus = "disabled"
    }
} | ConvertTo-Json -Depth 5

Invoke-RestMethod -Uri $pipelineUrl -Method Patch -Headers $headers -Body $body -ContentType "application/json"

内容的提问来源于stack exchange,提问作者Mudit Balooja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:12:38