如何从 PowerShell 以编程方式列出 VSTS 代理池?
How to list VSTS agent pools programmatically from PowerShell?
我想连接到 VSTS 并获取代理池列表。我想枚举代理池,然后删除 VSTS 服务器上的代理。我在 VSTS API 参考中找不到有关如何执行此操作的任何文档。
例如,我连接到 VSTS 很好,可以列出项目,但是如何列出代理池?
$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)}
我也没有在官方文档中找到任何相关信息。
但是通过检查网络流量,我发现了以下内容:
https://xyz.visualstudio.com/_apis/distributedtask/pools/ 是获取代理池的方法。
因此,通过 GET 请求,您将获得代理池列表,其中包括名称、ID 和更多属性。如果您使用要删除的池的 ID 向 url 发送 DELETE 请求,它将被删除。
如果一开始你想获取代理池的代理,你可以执行 GET 到:
https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents
然后你会再次获得该池的代理,其中列出了名称、ID 等。
要删除该代理,请向 https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents/AGENTID
发送 DELETE 请求
因此,在您的 PowerShell 脚本中,您也不需要获取任何内容 "project-specific",因为 AgentPools 和代理可用于集合中的所有项目。
希望对您有所帮助
我想连接到 VSTS 并获取代理池列表。我想枚举代理池,然后删除 VSTS 服务器上的代理。我在 VSTS API 参考中找不到有关如何执行此操作的任何文档。
例如,我连接到 VSTS 很好,可以列出项目,但是如何列出代理池?
$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)}
我也没有在官方文档中找到任何相关信息。
但是通过检查网络流量,我发现了以下内容:
https://xyz.visualstudio.com/_apis/distributedtask/pools/ 是获取代理池的方法。
因此,通过 GET 请求,您将获得代理池列表,其中包括名称、ID 和更多属性。如果您使用要删除的池的 ID 向 url 发送 DELETE 请求,它将被删除。
如果一开始你想获取代理池的代理,你可以执行 GET 到:
https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents
然后你会再次获得该池的代理,其中列出了名称、ID 等。
要删除该代理,请向 https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents/AGENTID
因此,在您的 PowerShell 脚本中,您也不需要获取任何内容 "project-specific",因为 AgentPools 和代理可用于集合中的所有项目。
希望对您有所帮助