powershell - 如何从 PowerShell 以编程方式列出 VSTS 代理池?
问题描述
我想连接到 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 等。
要删除该代理,您需要向其发送 DELETE 请求https://xyz.visualstudio.com/_apis/distributedtask/pools/POOLID/agents/AGENTID
因此,在您的 PowerShell 脚本中,您也不需要获取任何“特定于项目”的内容,因为 AgentPools 和 Agents 可用于集合的所有项目。
希望有帮助
推荐阅读
- c++ - 跨线程调用又名在其他线程的主/UI线程上运行,无需依赖
- regex - 需要使用 powershell 从长配置文件中搜索一行
- azure - CredSSP 加密 Oracle 修复错误
- ionic-framework - Internet Explorer 11 中的 Ionic 3 离子行高度
- swift - ARKit 检测平面之间的交叉点
- jquery - 如何使用jquery禁用更改按钮
- java - 在 try catch 块中返回。正确吗?
- python - 使用 Beautiful Soup 在 Python 中递归地抓取网站的所有子链接
- json - 如何将 json 数据转换为下面提到的格式
- android - Android中的firebase图像检索