Upgrade Classic mode SharePoint 2010 web application to Claims mode SharePoint 2013 web application

In this post i will explain the steps we need to follow to upgrade classic mode SharePoint 2010 web application to claims mode 2013 web application. This is not the only available approach. There are many ways to do achieve that, but this is the one which worked without any hassles for me.

Step 1: Backup and restore (or Detach and attach) content database of classic mode 2010 web application in SharePoint 2013 SQL database instance.

Step 2: Create a Classic mode web application in SharePoint 2013. Assuming that you have already setup a functional SharePoint 2013 farm.

Make sure that you have following permissions:

  • securityadmin – Fixed server role on the SQL Server instance
  • db_owner – Fixed database role on all databases that are going to be updated
  • Administrator privileges on the server on which you are running the Windows PowerShell cmdlets

Run the following PowerShell command to create classic mode web application in SharePoint 2013

New-SPWebApplication -Name “ClassicModeWebApp” -ApplicationPool “MyAppPool” -ApplicationPoolAccount “Domain\AppPoolAccount” -Port “80” -HostHeader “SP2013.company.com” -URL http://SP2013.company.com” -AuthenticationMethod “NTLM”

You get the following warning message before Classic mode web application is created.25

Step 3: Delete the existing content database created along with web application creation
You can do this directly through UI or Powershell. Doing it through PowerShell is the cleanest way because it removes the database also from backend database. You need to be extra cautious here, once deleted database cannot be retrieved.

Browse to Central Admin -> Application Management -> Select Manage content databases under Databases -> Select the newly created web application using drop down (Careful here!) -> Make sure you selected the correct web application -> Select the content database -> Check the box which says ‘Remove content database.

Through UI the database association with Web application is removed, but not the database. It still exists in backend SQL server.26

Using PowerShell you can use the following command to delete the database

Get-SPContentDatabase GUID | Remove-SPContentDatabase

you can get the GUID of database by using Get-SPContentDatabase which lists all the content databases.

Step 4: Test the content database against the web applicaiton in SP2013 using PowerShell

Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>

Review the output and fix any issues.

Step 5: Mount and upgrade the database using the following powershell command

Mount-SPContentDatabase -Name <Databasename> -WebApplication <URL>

Step 6: Convert the web application back to Claims using the following PowerShell command

Convert-SPWebApplication -Identity <URL> -To Claims -RetainPermissions

This converts the web application back to Claims. You may need to visit every site collection and upgrade them manually or let site collection admins to that task.