代码之家  ›  专栏  ›  技术社区  ›  Mark Allison

如何从powershell以编程方式列出vsts代理池?

  •  2
  • Mark Allison  · 技术社区  · 6 年前

    我想连接到vsts并获取代理池的列表。我想枚举代理池,然后删除vsts服务器上的代理。我在vsts api参考中找不到任何有关如何执行此操作的文档。

    我正在连接到vst,例如,这样可以很好地列出项目,但是如何列出代理池呢?

    $User = 'mark.allison@domain.com'
    $PersonalAccessToken = '{PAT_TOKEN}'
    $base64authinfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f  $User, $PersonalAccessToken)))
    $vstsAccount = "{VSTS_ACCOUNT}"
    
    # projects
    $resource = 'projects'
    $uri = "https://sabinio.visualstudio.com/DefaultCollection/_apis/$($resource)?api-version=3.0"
    $projects = Invoke-RestMethod -Method Get -ContentType application/json -Uri $Uri -Headers @{Authorization=("Basic {0}" -f $base64authinfo)}
    
    1 回复  |  直到 6 年前
        1
  •  5
  •   huserben    6 年前

    我也没有在官方文件中找到任何关于它的信息。
    但是,通过检查网络流量,我发现了以下几点: https://xyz.visualstudio.com/_apis/distributedtask/pools/ 如何获取代理池。
    因此,通过get请求,您将得到一个代理池列表,其中包括名称、id和一些其他属性。如果使用要删除的池的ID向该URL发送删除请求,则该请求将被删除。
    如果首先要获取代理池的代理,请执行“获取”:
    https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents
    然后再次列出该池的代理,包括名称、id等。
    要删除您向其发送删除请求的代理 https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents/AGENTID

    因此,在powershell脚本中,也不需要获取任何“特定于项目”的内容,因为agentpool和agents可用于集合的所有项目。

    希望能帮上忙

    推荐文章