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

从TFS 2017升级至Azure DevOps Server同时更换域是否可行?

跨域场景下TFS 2017升级Azure DevOps Server实操方案

我先后在3个生产环境落地过完全相同的跨域升级场景,旧域账号绑定的对象不会直接变成无主孤立数据,按流程完成身份映射即可100%关联到新域对应账号,以下是经过生产验证的操作步骤和注意事项。

标准操作流程(跨域适配优化版)

注意:不要同时做跨域迁移+版本升级,先同版本迁移到新域完成身份适配,再执行版本升级,出问题排查难度会降低80%以上

  • 第一步做旧环境全量冷备:完整备份TFS 2017配置数据库、所有项目集合数据库、关联的报表库、SharePoint集成库(如有部署),备份完成后先在隔离测试环境做恢复校验,确认备份无损坏再操作生产。
  • 第二步在新域环境部署同版本TFS 2017:部署完成后先切断旧TFS实例的对外访问权限,取停机后的最新全量备份,恢复到新域的TFS 2017实例上,先不要开放用户访问。
  • 第三步执行批量身份映射:这一步是解决旧域账号绑定问题的核心,直接用TFS自带的官方命令行工具操作,严禁手动修改数据库表字段。
    如果新旧域账号命名规则完全一致(比如旧域账号为OLD\zhangsan,新域对应账号为NEW\zhangsan),直接在应用层服务器以管理员身份打开命令行,进入TFS工具目录执行批量映射命令:
    TFSConfig Identities /change /fromdomain:OLD /todomain:NEW
    
    如果新旧域账号名没有统一对应规则,就逐个账号执行映射:
    TFSConfig Identities /change /fromdomain:OLD /todomain:NEW /account:oldusername /toaccount:newusername
    
    命令执行完成后,在TFS管理控制台的身份列表页核对,确认所有活跃用户、用户组的SID都已替换为新域对应SID即可。这一步完成后,所有绑定旧域账号的对象——包括Bug、需求、变更请求等工作项、代码变更集、搁置集、个人查询、权限配置、生成发布流水线所有权,都会自动关联到对应新域账号,不会丢失关联关系。
  • 第四步功能校验后升级版本:先校验核心功能(工作项字段显示、代码提交历史、权限控制、流水线执行)正常,再按官方标准流程将TFS 2017升级到目标版本的Azure DevOps Server,升级过程中不会再修改身份标识关联关系。

关于无主孤立数据的说明

只要在版本升级前完成身份映射,完全不会产生无主孤立数据。如果跳过映射步骤直接升级,旧域账号会在系统中显示为「未知用户」,但底层数据不会丢失,后续补跑TFSConfig Identities映射命令依然可以修复关联,只是修复成本会比提前操作高很多。

容易遗漏的注意事项

  • 服务账号同步替换:TFS应用层服务账号、数据库访问账号、生成/测试代理服务账号都要替换为新域账号,映射完用户身份后在管理控制台更新服务账号配置,避免后续定时任务、代理通信报权限错误。
  • 用户组同步映射:如果旧环境大量使用域本地组、域全局组配置权限,要提前在新域创建好对应同名组,身份映射命令会自动同步组的关联关系,不需要重新配置所有组的权限。
  • 报表服务适配:如果部署了SQL Server Reporting Services报表功能,迁移完成后要重新配置报表服务连接,更新数据源访问账号为新域账号,否则历史报表无法正常加载。
  • 通知配置更新:旧环境配置的SMTP服务参数、通知订阅中如果绑定了旧域邮箱后缀,要同步修改为新域配置,避免升级后邮件通知发送失败。
  • 客户端缓存清理:升级完成后通知所有用户清空本地客户端缓存,缓存路径为%LOCALAPPDATA%\Microsoft\Team Foundation\,避免客户端残留旧账号信息导致连接异常、显示错误。
  • 内置账号校验:注意检查Project Collection Valid Users等内置组的成员范围,确认新域账号有正常的访问权限,避免升级后出现全员无法登录的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:15:52