TFS 2017.3迁移至VSTS:IdentityMapLog.csv身份显示异常求助
我来帮你排查这个身份映射的问题,这种情况在TFS 2017.3迁移到Azure DevOps(原VSTS)的过程中并不少见,咱们一步步来分析解决:
可能的原因与解决方案
1. Prepare命令的范围限制
你执行的Prepare命令大概率只针对了特定团队项目,而非整个TFS集合。默认情况下,如果未明确指定集合参数,工具只会处理当前上下文关联的项目,自然只会映射该项目涉及的少量身份。
- 解决方案:重新执行Prepare命令时,明确指定要迁移的完整集合,命令示例如下:
记得替换tfpt online /collection:http://your-tfs-server:8080/tfs/YourCollection /prepare /identitymapfile:IdentityMap.csvyour-tfs-server和YourCollection为你的实际服务器地址与集合名称。
2. 身份类型或活跃度过滤
TFS中的身份包含域用户、本地用户、组、服务账户等多种类型,Prepare命令默认可能只抓取活跃且关联项目权限的身份,会自动忽略历史遗留的无权限身份、集合级闲置组等。
- 解决方案:
- 先导出所有身份到本地文件用于对比:
tfsconfig identities /collection:http://your-tfs-server:8080/tfs/YourCollection > AllIdentities.txt - 检查
IdentityMapLog.csv里的3个身份类型,确认是否都是当前核心项目的活跃用户;如果需要映射其他身份,可以手动编辑IdentityMap.csv,按照以下格式补充条目:Source Identity,Target Identity,Comment DOMAIN\OldUser1,AAD\OldUser1@domain.com,手动映射历史用户
- 先导出所有身份到本地文件用于对比:
3. 缓存或日志生成异常
有时候Prepare命令执行完成后,日志文件可能因缓存未刷新、进程未完全退出而生成不完整。
- 解决方案:
- 关闭所有相关命令行窗口与TFS工具,清理本地TFS缓存(默认路径为
C:\Users\<你的用户名>\AppData\Local\Microsoft\Team Foundation\7.0\Cache,版本号根据你的TFS版本调整)。 - 以管理员权限重新打开命令提示符,完整执行Prepare命令,等待命令行输出明确的完成提示后,再查看生成的日志文件。
- 关闭所有相关命令行窗口与TFS工具,清理本地TFS缓存(默认路径为
4. 身份匹配规则的隐性限制
虽然tfsconfig identities显示Match和Exists均为True,但Prepare命令的匹配逻辑更严格——比如要求身份必须有邮箱匹配、或在Azure AD中存在对应活跃账户,否则不会纳入映射。
- 解决方案:
- 检查那些未被映射的身份是否在Azure AD中存在对应账户,若不存在,需要先在Azure AD中创建或激活对应身份。
- 对于无法自动匹配的身份,直接手动补充到
IdentityMap.csv中,再继续后续迁移步骤。
另外提醒下,操作前务必备份TFS集合数据,避免因误操作导致数据丢失。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

