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.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Find all Private channels in a Team

Private channel in a team is an access controlled space available only for Owners and Members of the channel. Guests can be added to private channel as long as they are already member of the team. This should do for a quick intro about private channels. Well, the point of this post is it not […]

Read More

Disable feedback surveys in Power Platform

If you have worked in Microsoft 365 PowerApps or Power Automate, you might be familiar with feedback survey which pops up quite often. Microsoft wants your feedback on how likely are your to recommend Power Automate to a friend or colleague? Well, I ran into a conversation in twitter about this survey. Apparently I learnt […]

Read More

Error handling in Azure PowerShell Runbooks

Error handling in Azure PowerShell Runbooks should be handled carefully if not the runbook with continue to Completed state even if there is an Error in the script. Unlike exception, Runbook execution will continue after  an Error  by default. Windows PowerShell has multiple streams of output. Runbooks in Azure work differently in each of these […]

Read More