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

升级克隆TFS 2012至2018 SP1后,如何清除所有工作区映射?

清理TFS 2018 SP1旧工作区映射的安全方案

嘿,这个场景我之前帮团队处理过——直接动手改TFS数据库真的是绝对要避免的操作,微软明确说过手动修改数据库会丧失官方支持,还很容易搞出数据不一致的问题。不过别慌,有官方提供的安全方法能批量清理所有旧工作区,完美实现你要的“让用户重新创建映射、防止覆盖代码”的目标:

方法1:用tf workspace命令行批量清理

这是最直接的方式,在新TFS服务器的应用层操作就行:

  • 打开对应TFS 2018版本的Developer Command Prompt for Visual Studio
  • 先登录到你的新TFS集合:
    tf login https://your-new-tfs-server-url/tfs/YourCollectionName
    
  • 先枚举所有工作区,确认要清理的对象(可选,但建议做):
    tf workspaces /collection:https://your-new-tfs-server-url/tfs/YourCollectionName /owner:*
    
  • 批量删除所有工作区(执行前一定要确认!这会删掉所有用户的旧工作区):
    for /f "tokens=1" %a in ('tf workspaces /collection:https://your-new-tfs-server-url/tfs/YourCollectionName /owner:* /format:table ^| findstr /v "Workspace"') do tf workspace /delete /collection:https://your-new-tfs-server-url/tfs/YourCollectionName %a
    
    要是你把这段写成批处理文件,记得把%a改成%%a。

方法2:用TFS PowerShell模块操作

如果你更熟悉PowerShell,官方模块也能搞定:

  • 导入TFS 2018的PowerShell模块:
    Import-Module "$env:ProgramFiles\Microsoft Team Foundation Server 2018\Tools\Microsoft.TeamFoundation.PowerShell.dll"
    
  • 连接到目标集合:
    $tfsCollection = Get-TfsTeamProjectCollection -CollectionUrl "https://your-new-tfs-server-url/tfs/YourCollectionName"
    
  • 一键删除所有工作区(同样,执行前确认清楚):
    Get-TfsWorkspace -Collection $tfsCollection | Remove-TfsWorkspace -Confirm:$false
    

为什么不能直接改数据库?

TFS的工作区数据分散在tbl_Workspace、tbl_WorkspaceMapping等多个关联表里,手动删不仅容易漏删关联数据,还会破坏数据库的一致性校验,后续服务器出问题微软是不会帮你排查的。用官方工具才是稳妥的选择。

最后提醒

清理完旧工作区后,记得通知所有用户:

  • 必须在新服务器上重新创建工作区并设置映射
  • 绝对不要用旧的工作区配置连接新服务器,避免误操作覆盖代码
  • 如果担心本地代码丢失,先把本地代码文件夹备份一份再操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:15:49