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

如何在TFS 2015中复制团队项目间的TFS组、权限及AD组?

复制TFS组与权限到另一个团队项目

我在处理TFS权限迁移方面有不少经验,针对你在TFS 2015里的需求,分两部分给你详细解答:

一、复制TFS组与对应权限

方法1:手动操作(适合小规模项目)

如果你的团队项目权限结构不复杂,手动操作是最直接的:

  • 打开团队资源管理器,进入源团队项目的「项目设置」→「权限」页面
  • 右键选中要复制的TFS组,选择「导出权限」,把权限配置保存为CSV文件做参考
  • 切换到目标团队项目,在同样的权限页面创建同名的TFS组(保持命名一致能减少后续混乱)
  • 对照导出的CSV报告,逐个给新建组配置相同的权限——要注意覆盖所有节点,比如源代码管理根目录、工作项区域/迭代、项目级权限等
  • 如果源组里有成员,直接在目标组中添加对应的成员(AD用户/组可以直接搜索添加)

方法2:PowerShell脚本自动化(适合大规模/重复场景)

TFS 2015提供了官方PowerShell模块,能帮你批量迁移权限,效率更高:

  1. 先加载TFS PowerShell模块:
    Add-PSSnapin Microsoft.TeamFoundation.PowerShell
    
  2. 连接到你的TFS服务器与集合:
    $tfsCollection = Get-TfsServer http://your-tfs-server:8080/tfs/YourCollectionName
    
  3. 获取源项目与目标项目的对象:
    $sourceProject = $tfsCollection.GetService([Microsoft.TeamFoundation.Server.ICommonStructureService]).GetProjectFromName("SourceProjectName")
    $targetProject = $tfsCollection.GetService([Microsoft.TeamFoundation.Server.ICommonStructureService]).GetProjectFromName("TargetProjectName")
    
  4. 导出源项目的权限信息,然后在目标项目创建组并同步权限:
    # 获取源项目的所有组权限(递归包含子节点)
    $sourcePermissions = Get-TfsPermission -Project $sourceProject -Recurse
    
    foreach ($perm in $sourcePermissions) {
        # 检查目标项目是否已存在同名组,不存在则创建
        $targetGroup = Get-TfsGroup -Project $targetProject -GroupName $perm.Identity.DisplayName -ErrorAction SilentlyContinue
        if (-not $targetGroup) {
            $targetGroup = New-TfsGroup -Project $targetProject -GroupName $perm.Identity.DisplayName -Description $perm.Identity.Description
        }
        # 同步权限设置
        Set-TfsPermission -Project $targetProject -Identity $targetGroup -Allow $perm.Allow -Deny $perm.Deny -Item $perm.Item.ServerItem
    }
    
    注意:脚本可能需要根据你的实际权限节点(比如源代码控制、工作项)做微调,测试时建议先在非生产环境验证。

二、复制TFS中的AD组到其他团队项目

首先要明确:AD组是存储在你的域控制器中的,不需要“复制”AD组本身——你只需要把这些AD组添加到目标项目的对应TFS组,或者直接给它们分配权限即可:

方法1:手动添加

  • 进入目标团队项目的权限页面,打开要添加AD组的TFS组(或者直接在项目级权限中添加)
  • 点击「添加」按钮,在搜索框输入AD组的名称,选中后确认添加
  • 参照源项目的权限配置,给这个AD组设置相同的权限

方法2:PowerShell批量添加

如果有大量AD组需要迁移,可以用脚本自动化:

# 获取源项目中目标TFS组的所有AD成员
$sourceGroup = Get-TfsGroup -Project $sourceProject -GroupName "YourSourceTfsGroupName"
$adMembers = Get-TfsGroupMember -Group $sourceGroup | Where-Object { $_.IdentityType -match "Windows" }

# 获取目标项目的对应TFS组
$targetGroup = Get-TfsGroup -Project $targetProject -GroupName "YourTargetTfsGroupName"

# 批量添加AD成员到目标组
foreach ($member in $adMembers) {
    Add-TfsGroupMember -Group $targetGroup -Member $member
}

额外注意事项

  • 确保你拥有TFS集合管理员或项目管理员权限,否则无法创建组或修改权限
  • 迁移前建议先在测试环境验证配置,避免影响生产环境的正常使用
  • 对于特殊权限(比如特定文件夹的自定义权限),要逐一核对,避免遗漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:28:28