I needed to migrate a SharePoint 2010 site on Server A to a SharePoint 2013 site on Server B. Because my 2010 site was using classic mode authentication, there were some extra steps involved to make sure that user permissions were carried over. Below are the steps I used to accomplish this.
Step #1: Backup the content database of the site you will be migrating using SQL Management Studio and copy the database backup to Server B (or wherever your SQL Database Server is that the SharePoint site on Server B uses. For me they are the same server).
Step #2: Restore the database backup on Server B. You can rename the database at this time if you need to. For me the database backup was of the WSS_Content database, which already existed on Server B so I renamed the database to Infrastructure_WSS_Content as part of the restore process.
Step #3: Create a classic mode authentication web application in SharePoint 2013. This can only be done through PowerShell. Using the Central Administration Tool will create your Web Application in Claims Authentication Mode, and after the migration you will have all kinds of problems with user permissions (as I found out the hard way).
Your command will be in the format
<Name> is the name of the web application being migrated
<ApplicationPool> is the name of the application pool assigned to the web application
<WindowsAuthType> is either “NTLM” or “Kerberos”
<ApplicationPoolAccount> is the user account that this application pool will run as
<HostHeaderName> is the host header for the web application
<Port> is the port the web application will be created in IIS
<URL> is the public URL for the web application
Not all of these are required fields, you can lookup the help file for New-SPWebApplication here for more information on the cmdlet.
My command looked like this:
New-SPWebApplication -Name "Infrastructure" -ApplicationPool "Infrastructure" -AuthenticationMethod "NTLM"
-ApplicationPoolAccount NetworkService -DatabaseName "Infrastructure_Content" -URL http://infrastructure
Which then produced the following output:
Step #4: Delete the content database that was created as a result of the New SharePoint Web Application. This is because we need to associate our existing site database with this new Web Application in the next step. You can do this using the SharePoint Central Administration Web Site.
- Launch SharePoint 2013 Central Administration web site.
- Navigate: Application Management –> Manage Content Databases
- Select the web application created in Step #3 from the web application drop down located in the upper right of the browser
- Click on the Database Name which was created in Step #3, it will be named something along the lines of WSS_Content_(Insert Random Characters)
- Scroll to the bottom of the database information page displayed and check the Remove Content Database checkbox
- Click the OK button
Step #5: Validate that the SharePoint 2010 site can be upgraded to SharePoint 2013. Launch the SharePoint Management Shell as Administrator and run the command:
Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>
Mine looked like this:
Test-SPContentDatabase -Name Infrastructure_WSS_Content -WebApplication http://infrastructure
You are going to get an error about claims authentication, you can ignore that. Any other errors should be addressed before continuing with the process, especially if they are issues that say Upgrade Blocked: Yes.
Step #6: Mount the database for the SharePoint 2010 site to the newly created Web Application using the command:
Mount-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>
Once again, mine looked like this:
Mount-SPContentDatabase -Name Infrastructure_WSS_Content -WebApplication http://infrastructure
You will get a counter below your command that will show the progress while it mounts the database.
Step #7: IISReset
Step #8: Browse to your SharePoint Web Application URL. Your site should display (with a big banner across the top asking if you want to upgrade the site. Ignore that for now).
Step #9: Convert your 2010 SharePoint site to Claims Authentication. Classic mode authentication has been officially depreciated by Microsoft. If you migrated a classic mode authentication based content database, it is strongly recommend you convert the database to claims based using the Convert-SPWebApplication PowerShell command:
Convert-SPWebApplication -Identity <URL> -To Claims -RetainPermissions
Mine looked like this:
Convert-SPWebApplication -Identity http://infrastructure -To Claims -RetainPermissions
The result looked like this:
Step #10: Do another IISReset. Browse to your site. Click the banner at the top to upgrade and follow the steps. Depending on the size of your site it can take quite a while to upgrade the site.