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

Azure DevOps自托管代理是否支持设置定时启用和禁用?

Azure DevOps 自托管代理定时启停方案

Azure DevOps 本身没有内置自托管代理的定时启用/禁用功能,你可以通过以下两种方案实现仅周末启用办公设备上的代理的需求:

方案1:调用Azure DevOps REST API + 定时任务(推荐,可批量管理多代理)

  • 第一步:创建个人访问令牌(PAT),权限范围勾选「代理池(Agent Pools)」的读写权限,保存好Token值备用
  • 第二步:获取对应代理的ID、所属代理池ID,你可以在代理详情页的URL里提取这两个参数
  • 第三步:编写状态切换脚本,调用官方REST API修改代理的启用状态,请求示例如下:
    请求方法:PATCH
    请求地址:https://dev.azure.com/{你的组织名称}/_apis/distributedtask/pools/{代理池ID}/agents/{代理ID}?api-version=7.1-preview.1
    请求Body:
    {"enabled": true} // 设为false即为禁用
    
    PowerShell 调用示例:
    $token = "你的PAT值"
    $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$token)))
    $url = "https://dev.azure.com/你的组织名/_apis/distributedtask/pools/代理池ID/agents/代理ID?api-version=7.1-preview.1"
    $body = '{"enabled": true}'
    Invoke-RestMethod -Uri $url -Method Patch -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $body
    
  • 第四步:在设备上添加定时任务:Windows用系统自带的任务计划程序,Linux/macOS用crontab,设置每周五19点执行启用脚本,每周日22点执行禁用脚本即可。

方案2:直接定时启停代理本地服务(适合单设备场景,操作更简单)

自托管代理本质是运行在设备上的后台服务,你不需要调用API,直接定时启停本地服务即可实现相同效果:

  • Windows设备:代理服务名格式为vstsagent.{组织名}.{代理池名}.{代理名},可以在系统服务列表里查到,定时执行net start 服务名和net stop 服务名即可
  • Linux/macOS设备:通过systemctl或对应服务管理命令,定时启停代理服务即可

注意事项

  • 你手动切换代理状态的界面开关对应如下:
    启用代理开关
  • 不管用哪种方案,禁用代理/停止服务都只会阻止新的任务分配到该代理,不会终止已经在运行的任务,建议把定时时间设置在没有测试任务运行的闲置时段,避免影响任务执行
  • 如果使用启停本地服务的方案,需要确认代理服务安装时选择了「以服务身份运行」,不要勾选「仅当用户登录时运行」,避免定时启动失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:45:05