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

[TFS 2015]:跨AD域迁移TFS用户并保留权限方案咨询

TFS跨域用户迁移(保留权限)最佳实践

我之前处理过好几次类似的TFS跨域用户迁移场景,结合官方的Identities命令工具,给你梳理下最稳妥的步骤,确保权限完全保留,不用重新配置一堆东西:

准备工作

  • 先整理好迁移用户清单:把每个domainA\firstname.lastname对应的domainB\employee#列出来,最好做成CSV格式(比如每行是旧身份,新身份),批量处理的时候能省不少事。
  • 确保你有TFS服务器管理员权限(得在Team Foundation Administrators组里),并且能访问TFS的命令行工具——一般在C:\Program Files\Microsoft Team Foundation Server <你的版本号>\Tools目录下,找不到的话可以搜tfssecurity.exe。
  • 提前备份TFS的配置数据库和集合数据库!这步一定要做,万一操作中出点小状况,备份就是你的救命稻草。

迁移执行步骤

1. 先验证新旧身份能被TFS识别

操作前先确认TFS能找到新旧用户,避免后续踩坑。可先暂停TFS服务(防止操作期间有用户变更):
tfsservicecontrol quiesce
然后分别查询新旧身份:
tfssecurity /imx domainA\firstname.lastname /server:http://<你的TFS服务器地址>:8080/tfs
tfssecurity /imx domainB\employee# /server:http://<你的TFS服务器地址>:8080/tfs
如果能返回用户的SID、姓名这些属性,说明身份是有效的,可以继续下一步。

2. 批量映射(多用户推荐)

如果要迁移的用户多,用CSV批量映射效率最高。先建个user_mapping.csv文件,内容示例:

domainA\john.doe,domainB\1001
domainA\jane.smith,domainB\1002

然后运行命令:
tfssecurity /mapidentity /server:http://<你的TFS服务器地址>:8080/tfs /inputfile:user_mapping.csv
这个命令会自动把旧身份的所有权限、工作项历史、变更集关联全部转移到新身份上,不用一个个手动弄。

3. 单个用户映射(少数用户用)

如果只有几个用户要迁移,直接跑单个命令就行:
tfssecurity /mapidentity "domainA\firstname.lastname" "domainB\employee#" /server:http://<你的TFS服务器地址>:8080/tfs
执行后会提示确认,输入Y回车就搞定了。

4. 验证迁移结果

映射完一定要检查下,确保没出问题:
运行命令查看新身份的映射情况:
tfssecurity /imx domainB\employee# /server:http://<你的TFS服务器地址>:8080/tfs
看输出里的Mapped identities部分,应该能看到对应的旧domainA用户。另外,去TFS项目的权限设置里看看,或者打开一个旧工作项,确认新用户已经有了旧用户的权限,历史记录里的用户显示也正常。

5. 恢复TFS服务(如果之前暂停了)

tfsservicecontrol unquiesce

关键注意事项

  • 千万别手动删除旧的domainA用户!映射后TFS会自动关联新旧身份,删了旧用户反而可能导致权限丢失。
  • 如果用户在TFS里有自定义组,映射后新身份会自动加入对应的组,不用手动调整组权限。
  • 迁移完成后,用户直接用新的domainB\employee#登录TFS就行,之前的所有操作历史、权限都会保留,完全无缝。
  • 这个方法适用于TFS 2018及以后版本,更早版本的话核心逻辑一样,但可能需要额外验证数据库层面的关联,不过一般问题不大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:40:57