Since the release of TFS 2010, many organizations have chosen to migrate their TFS 2008 deployment to TFS 2010.
There is plenty of documentation describing the process of upgrading your TFS 2008 deployment and the procedure is relatively simple. What you won’t find, however, are detailed notes on the process of migrating/upgrading a TFS 2008 deployment to TFS 2010 while moving it from one domain to a different domain, while changing your user account names between domains.
The following is a step-by-step guide to migrating TFS 2008 from one domain to TFS 2010 in another. This process presumes the following:
1) That you’ll be performing an in-place upgrade of TFS 2008 to TFS 2010 in the old domain
2) That your new domain has user accounts for each of the users that exist in the old domain.
How to Migrate a TFS 2008 deployment from one AD domain to TFS 2010 in another AD domain.
1) Before anything else, make sure you run the Best Practices Analyzer on the old TFS server and correct any issues you may encounter.
2) Ensure there is adequate disk space on both the TFS 2008 server and the destination server for installing service packs and applications.
3) You will be installing .NET 3.5 which requires 2.0a. So ensure that all requisite SP’s are installed on the original serverfirst.
4) Install .NET 3.5 SP1 (KB951847)
5) On Old Domain, if you are running SQL Server 2005, upgrade SQL Server to 2008, then install SP1 for SQL Server 2008.
6) Perform in-place upgrade of TFS 2008 to TFS 2010. This procedure is straight-forward. Insert the TFS 2010 disk and follow the setup prompts for an upgrade.
7) Once the upgrade has occurred, backup the Project Collection. Using the SQL Server backup utility.
a. Right-click on the TFS Collection, select Tasks/Backup. Accept the defaults. Once it’s backed up, copy it to a folder on the destination server. You can proceed to the next step.
8) On new domain, build new server as follows.
a. Install SQL Server 2008 (Including relevant SP’s and Hotfixes)
b. Install TFS 2010 (DO NOT run the configuration wizard from the setup.)
9) Run the TFS Administration Console then run the configuration Wizard and choose Advanced.
10) Configure TFS 2010 for everything BUT do not configure Project Collection
11) Restore the Project Collection onto SQL Server.
a. In SQL Server Management Studio, right click on the Databases folder and choose Restore database.
b. From Device, add a file and select the database file we copied from the older server. (Do not store this file on the desktop!)
c. Choose Restore from “Select the backup sets to restore”. In the “To Database:” field, type in the name of the database and select the default options.
12) Go to C:Program FilesMicrosoft Team Foundation Server 2010Tools and run TFSConfig Identities to ensure that there are no destination account names listed. In other words, accounts can exist, but we cannot have accounts with the same names as the names we are going to be using to map the old accounts to. (for example, if we intend on mapping OLDDOMAINRennieA to NEWDOMAINRAraucto, then RAraucto cannot appear when we run TFSConfig Identities) If any of these accounts exist in the new TFS deployment they will not be able to be mapped to the original accounts and you will lose any associated work items. [Important note: TFS Administrators is automatically populated with the BuiltinAdministrators group, which means that any accounts in that group will be part of the TFS Administrators group!]
13) Attach the Project Collection. This should be relatively quick and shouldn’t take a long time. If it’s taking a while, check out the Event Log (Applications) to see what’s going on. Service accounts may be having problems or there could be Instance ID issues.
14) Once the Project Collection is attached then we need to map the old accounts to the new accounts. First, list out all the existing accounts by using TFSConfig Identities to list out the old accounts. You should now see the old accounts listed with the previous domain associated with it.
15) Use TFSConfig Identities /change and migrate the users. I used a batch file to do it. Use the following command
a. TFSConfig Identities /change /from domain:<OldDomain> /todomain:<NewDomain> /Account:<OldAccountName> /ToAccount:<NewAccountName> /SQLInstance:<SQLInstanceName> /DatabaseName:<NameOfConfigurationDatabase>
16) Run TFSConfig Identities to see if the new accounts now exist and the old accounts don’t. If this runs correctly you’ll notice that the old accounts are no longer listed and the New account now exist.
17) Ensure you can use Team Web Access to connect to the work items. (Note that permissions may have to be assigned using the new TFS permissions structure)
18) Configure TFS by going into TFS Administration Console
19) Make sure you configure the reports folder and populate the new TFS 2010 reports folder with the new report templates since they don’t automatically exist when you upgrade. To add reports you must use a microsoft defined xml file and then run a command that uses the xml file to populate the reports node with reports, predefined by the Process TEmplate. This XML file can populate the existing Reports node and the SharePoint site.
20) Move over the Documents content.
Good luck with your migration!