我们最近从TFS 2005迁移到TFS 2010迁移到TFS 2012(更新4)
TFS 2005到TFS 2010是通过升级过程完成的。 TFS 2010至TFS 2012是通过分离(来自TFS2010框)和重新附加方法(在TFS 2012框中)完成的
我们的一位用户收到以下错误消息。
“TF14045:身份不是认可的身份”
问题似乎与他的机器名称有关。工作区。
当我尝试使用Team Foundation Sidekicks 2012按计算机名搜索TFS工作区时,我收到同样的错误。
如果这个人在不同的电脑上工作,他就没有任何问题。
以下是我尝试过的一些内容
我没有尝试过再次重建机器,但使用不同的名称来查看会发生什么。我只是想在重做那个漫长的任务之前看看是否有人有任何建议。
答案 0 :(得分:1)
最后,我用一个全新的名称重建了电脑。之后,用户不再登录问题。
当我在Team Foundation Sidekicks中按机器名搜索TFS时,我仍然会收到错误,但我认为答案是错误的原因。
**
更新 - 2年后,我决定在TFS中清理旧工作区。 我注意到在尝试查看特定集合上的所有工作区时仍然存在报告的问题。
(tf workspaces / owner:* / computer:* / collection:....)
我向微软开了一张事故票。
经过一些故障排除后,答案是清除收集表中的错误 - tbl_VCIdentityMap
一旦我们清除了第一个条目,我将重试tf workspaces命令并弹出一个新的guid错误。
我最终清除了该表中的25个条目,然后tf工作区的问题就消失了。
将在错误消息中弹出的guid等于位于许多集合表中的TeamFoundationServerId。
答案 1 :(得分:0)
这是我用来删除给定用户的所有工作区的PowerShell包装器:
Set-Alias -Name 'tf' -Value 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\TF.exe' # amend path so it points to your tf.exe file
# fetch a list of all workspaces and store them in an xml variable
$x = [xml](tf workspaces /computer:* /owner:* /format:xml)
# determine who we want to delete (this is used in our filter later; to delete all, just skip the filter
$userToDelete = 'Someone@example.com'
# for each workspace
# take those where the owner's display name matches our target user
# then delete that workspace (I've left prompts enabled, so you can manually validate things; add /noprompt to avoid that
$x.Workspaces.Workspace | ?{$_.ownerdisp -eq $userToDelete} | %{tf vc workspace /delete "$($_.name);$($_.owner)"}
有关MS Docs中可用选项的更多信息;因此您可以根据自己的具体要求调整以上内容。
感谢this post向我展示了XML输出技巧。
答案 2 :(得分:0)
在我们的场景中,我们正处于从 TFS 到 Azure DevOps Server 的迁移过程中。
在连接到新的 Azure DevOps 实例后,将 Visual Studio 2019 连接回 TFS 存储库时收到相同的错误。
通过源代码管理资源管理器手动删除工作区就行了。
答案 3 :(得分:-2)
我做得很好:我重命名/删除了连接TFS_Database.dbo.tbl_Workspace错误的工作区