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

使用PowerShell调用Azure DevOps REST API创建查询顶层文件夹报错求助

Azure DevOps创建查询文件夹报错TF400898的解决办法

问题根源

你的代码存在4个关键错误,导致内部服务报错:

  1. URI占位符未替换:原URI中的{query}是文档占位符,需替换为实际父文件夹的路径或ID
  2. Content-Type不匹配:application/json-patch+json用于资源更新操作,创建新文件夹应使用application/json
  3. 参数类型错误:isFolder需传入布尔值$true,而非字符串"true"
  4. 未指定父节点:创建文件夹必须明确指定父容器(如Shared Queries),无法直接创建无归属的顶层文件夹

修正后的代码

$pat = "aaa"
$organization="bbb"
$project = "ccc"

# 指向Shared Queries父文件夹,在此下创建子文件夹
$uri = "https://dev.azure.com/$organization/$project/_apis/wit/queries/Shared%20Queries?api-version=7.1-preview.2"

$body = @{
        name     = "Newfolder"
        isFolder = $true  # 使用布尔值而非字符串
}
$jsonbody = ConvertTo-Json $body

$headers = @{
    Authorization = "Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($pat)"))
    "Content-Type"  = "application/json"  # 修正为创建操作对应的Content-Type
}

$response = Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $jsonbody

补充说明

  • 若需在嵌套路径下创建文件夹,只需修改URI中的父路径,例如在Shared Queries/ExistingFolder下创建时,URI改为https://dev.azure.com/$organization/$project/_apis/wit/queries/Shared%20Queries/ExistingFolder?api-version=7.1-preview.2
  • 确保你的PAT拥有**工作项(读写)**权限,否则会触发权限类错误
  • 若路径转义出现问题,可使用父文件夹的GUID替换路径,GUID可通过GET请求https://dev.azure.com/$organization/$project/_apis/wit/queries/Shared%20Queries?api-version=7.1-preview.2获取返回结果中的id字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:53:21