我们计划将用户从我们公司域(domainA)迁移到我们母公司的域(domainB)。用户的登录ID将从domainA \ firstname.lastname更改为domainB \ employee#
目前,TFS服务器将驻留在domainA中。
迁移我们的TFS用户并确保他们仍然保持其当前权限的最佳方法是什么?
我确实找到了有关Identities命令的文档: https://docs.microsoft.com/en-us/vsts/tfs-server/admin/move-across-domains
感谢
答案 0 :(得分:0)
如果您只想跨Active Directory中的域迁移帐户,并将TFS服务器保留在域A中。
您可以使用TFSConfig Identities命令列出或更改TFS部署中用户和组的安全标识符(SID)。
首先,你的两个域之间应该有信任关系。然后按照以下步骤操作:
以管理员身份打开命令行并导航至“C:Program
FilesMicrosoft Team Foundation Server 14.0Tools
”
使用正确的参数运行TFSConfig Identities,例如
TFSConfig Identities /change /fromdomain:Domain1 /todomain:Domain2 /account:OldAccount /toaccount:NewAccount
查看结果
注意:TFS中存在用户帐户后,将无法将其删除或将其他帐户映射到该帐户。例如,如果要将DomainA / UserA移动到DomainB / UserB,则只有在TFS中尚未存在DomainB / UserB时,Identities命令才能用于迁移用户。
更多细节步骤请参阅此tutorial。
如果您还想将Team Foundation Server安装从一个域移动到另一个域,则需要完全按照说明进行操作:Move Team Foundation Server from one environment to another
从OP更新:
为了防止迁移的用户恢复到之前的帐户,我必须确保他们不属于任何域名组。一旦删除,我运行以下内容:
TFSServiceControl quiesce TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName /account:OldAccountName /toaccount:NewAccountName TFSServiceControl unquiesce
然后我运行了一个强制与TFS进行AD同步的poweshell脚本:
[Reflection.Assembly]::Load("Microsoft.TeamFoundation.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
# connect to the server
$credProvider = new-object Microsoft.TeamFoundation.Client.UICredentialsProvider $tfsConnection = new-object Microsoft.TeamFoundation.Client.TfsConfigurationServer "localhost:8080/tfs";, $credProvider $tfsConnection.EnsureAuthenticated()
# force a full sync on the next sync execution.
$tfRegistry = $tfsConnection.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationRegistry]) $tfRegistry.SetValue('/Service/Integration/Settings/IdentitySyncFull', $true)
# Kick the IMS periodic job so that it syncs.
$jobIds = [Guid[]] @('544DD581-F72A-45A9-8DE0-8CD3A5F29DFE') $jobSvc = $tfsConnection.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationJobService]) $jobSvc.QueueJobsNow($jobIds, $true)