Windows账户迁移对TFS 2012账户的影响及相关问题咨询
我来帮你拆解下TFS 2012在AD双账户阶段会遇到的问题和对应解决方案,毕竟我之前处理过不少类似的迁移场景:
对TFS环境的核心影响
- 权限直接失效:TFS是靠SID来识别用户身份的,新旧账户的SID完全不同,所以旧账户的所有权限(项目集权限、团队权限、工作项编辑/查看权限等)不会自动同步到新账户。用新账户登录TFS的话,默认就是个“新用户”,没有旧账户的任何权限。
- 系统认作两个独立用户:哪怕名字都是DoeJ,TFS会把
OldDomain\DoeJ和NewDomain\DoeJ当成完全不同的两个实体。比如工作项的修改历史、代码变更集的提交记录里,会分别显示这两个账户的条目,没法直接关联起来。 - 报表统计会出错:所有基于用户的统计报表(比如个人工作量、代码提交次数)都会被拆分到两个账户下,数据会出现偏差,没法准确反映单个用户的实际工作情况。
历史记录会不会丢失?
放心,不会丢失任何历史记录。旧账户的所有操作痕迹(工作项变更、代码提交、评论、权限记录等)都会完整保存在TFS数据库里。只是新账户默认没法直接看到这些历史和自己的关联,但可以通过账户映射操作让系统把两个账户识别为同一个主体,之后用新账户就能看到完整的历史记录了。
是否需要手动逐个重新分配工作项?
完全不需要手动逐个操作!TFS提供了官方的用户映射工具和命令,可以批量处理:
- 使用
tf identity命令完成映射,这是最快捷的方式。打开命令提示符,切换到TFS命令行工具所在目录(一般是C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE),然后执行:
这个命令会把旧账户的身份关联到新账户,之后工作项、变更集等历史记录会统一显示为新账户的身份,同时保留所有操作细节。tf identity /change OldDomain\DoeJ /to NewDomain\DoeJ /collection:http://你的TFS服务器地址:8080/tfs/你的集合名称 - 如果你更倾向于可视化操作,也可以在TFS管理控制台里操作:找到对应团队项目集合 -> 点击“安全” -> 切换到“身份”标签,找到旧账户后右键选择“映射”,关联到新账户即可。
额外注意事项
- 操作前一定要备份TFS数据库,避免操作失误导致数据问题。
- 映射完成后,新账户会自动继承旧账户的所有权限,不需要重新配置权限。
- 如果已经有用户用新账户在TFS里做过操作,映射后不会覆盖这些新操作记录,只是把新旧账户的历史合并到新账户下显示。
内容的提问来源于stack exchange,提问作者LividJay
相关产品推荐
相关产品推荐

