Part 3 Migration From SharePoint 2010 to 2016

Migrate to SharePoint 2013

Set up the Web applications using Classic Authentication

Note: Set up a domain user account called <domain>\SharePointService. This may need to be a local administrator to perform the following operations.

Open SharePoint 2016 Management Shell

Whilst the following commands could in theory be all run at once, I have found it best to copy and paste a few commands at a time.

You will need to substitute your domain name for <domain>, the password for the SharePointService account for <password> and the front end server name for <server name> . You can change the port number of the MySite Web Application from 11003 to another if desired.

$Username = “<domain>\SharePointService”
$Password = convertto-securestring “<password>” -asplaintext -force
$cred = new-object management.automation.pscredential $Username ,$Password
New-SPManagedAccount $cred

New-SPWebApplication -Name “SharePoint – 80” -ApplicationPool “SharePoint – 80” -AuthenticationMethod “NTLM” -ApplicationPoolAccount “<domain>\SharePointService” -Port 80 -URL “http://<server name>”

New-SPWebApplication -Name “SharePoint – MySite” -ApplicationPool “SharePoint – MySite” -AuthenticationMethod “NTLM” -ApplicationPoolAccount “<domain>\SharePointService” -URL “http://<server name>:11003”

Upgrade the SecureStore service application

You will need to substitute your passphrase for <passphrase>.

New-SPServiceApplicationPool -Name ‘SecureStoreServiceApplicationPool’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘SecureStoreServiceApplicationPool’
$sss = New-SPSecureStoreServiceApplication -Name ‘Secure_Store_Service’ -ApplicationPool $applicationPool -DatabaseName ‘Secure_Store_Service_DB’ -AuditingEnabled
$sssp = New-SPSecureStoreServiceApplicationProxy -Name ‘Secure_Store_Service_Proxy’ -ServiceApplication $sss -DefaultProxyGroup
Update-SPSecureStoreApplicationServerKey -Passphrase <passphrase> -ServiceApplicationProxy $sssp

Upgrade Business Data Connectivity service application

New-SPServiceApplicationPool -Name ‘BDCServiceApplicationPool’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘BDCServiceApplicationPool’
New-SPBusinessDataCatalogServiceApplication -Name ‘BDC Service’ -ApplicationPool $applicationPool -DatabaseName ‘BDC_Service_DB’

Upgrade the Managed Metadata service application

$Username = “<domain>\SharePointService”
$Password = convertto-securestring “<password>” -asplaintext -force
$cred = new-object management.automation.pscredential $Username ,$Password
New-SPManagedAccount $cred
New-SPServiceApplicationPool -Name ‘SharePoint – Managed Metadata’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘SharePoint – Managed Metadata’
$mms = New-SPMetadataServiceApplication -Name ‘Managed Metadata Service’ -ApplicationPool $applicationPool -DatabaseName ‘Managed_Metadata_Service_DB’
New-SPMetadataServiceApplicationProxy -Name ProxyName -ServiceApplication $mms -DefaultProxyGroup

Upgrade the User Profile service application

New-SPServiceApplicationPool -Name ‘SharePoint – User Profiles’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘SharePoint – User Profiles’
$upa = New-SPProfileServiceApplication -Name ‘User Profiles’ -ApplicationPool $applicationPool -ProfileDBName ‘User_Profile_Service_Application_ProfileDB’ -SocialDBName

New-SPProfileServiceApplicationProxy -Name ProxyName -ServiceApplication $upa -DefaultProxyGroup

Upgrade the PerformancePoint Services service application

New-SPServiceApplicationPool -Name ‘PerformancePointServiceApplicationPool’ -Account <domain>\SharePointService
$applicationPool = Get-SPServiceApplicationPool -Identity ‘PerformancePointServiceApplicationPool’
$pps = New-SPPerformancePointServiceApplication -Name ‘PerformancePoint Service’ -ApplicationPool $applicationPool -DatabaseName ‘PerformancePoint_Service_Application_DB’
New-SPPerformancePointServiceApplicationProxy -Name ProxyName -ServiceApplication $pps -Default

Upgrade the Search service application

New-SPServiceApplicationPool -Name ‘SearchServiceApplicationPool’ -Account <domain>\SharePointService

$applicationPool = Get-SPServiceApplicationPool -Identity ‘SearchServiceApplicationPool’
$searchInst = Get-SPEnterpriseSearchServiceInstance -local

Get the Search service instance and set a variable to use in the next command

Restore-SPEnterpriseSearchServiceApplication -Name ‘Search Service Application’ -applicationpool $applicationPool -databasename ‘Search_Service_Application_DB’ -databaseserver <server name of database server> -AdminSearchServiceInstance $searchInst
$ssa = Get-SPEnterpriseSearchServiceApplication
New-SPEnterpriseSearchServiceApplicationProxy -Name ProxyName -SearchApplication $ssa
$ssap = Get-SPEnterpriseSearchServiceApplicationProxy
Add-SPServiceApplicationProxyGroupMember -member $ssap -identity ” “

Verify that all new proxies are in the default proxy group

$pg = Get-SPServiceApplicationProxyGroup -Identity ” “
$pg.Proxies

Restore WSS_Content database

Mount-SPContentDatabase -Name WSS_Content_2013 -DatabaseServer <server name of database server> -WebApplication http://<server>

Restore WSS_Content database Mysite

Mount-SPContentDatabase -Name WSS_Content_MySite -DatabaseServer <server name of database server> -WebApplication http://<server>:11003

This shows which databases need upgrading

Get-SPContentDatabase | ft Name, NeedsUpgradeIncludeChildren

Move to Claims-based authentication

Convert-SPWebApplication -Identity http://<server> -To Claims -RetainPermissions -Force
Convert-SPWebApplication -Identity http://<server>:11003 -To Claims -RetainPermissions -Force
When prompted for a value for the variable ‘From’, enter ‘Legacy’

Change to SharePoint 2013 Experience before continuing!!!!! It upgrades SharePoint to v15 ready for 2016 (SharePoint 2016 fails without it)

Back up the databases and transfer them to the new SharePoint 2016 server.

About the author: Author

Leave a Reply