Upgrading User Profile Service Application from 2010 to 2013

The first thing to do is make sure you environment is setup properly and all your service account and setup and configured correctly, and good point of reference is this Spencer Harbar’s guide to User Profile Service: http://www.harbar.net/articles/sp2010ups.aspx

Before upgrading your existing databases I recommend creating a new User Profile Service Application to confirm that you have your environment configured correctly, and make sure the User Profile Service Application is functioning correctly and both the ‘User Profile Service’ & ‘User Profile Synchronization Service’ services are started.

I scripted this in PowerShell using this script: https://gallery.technet.microsoft.com/Create-a-User-Profile-c2136dc0

Once you have a working User Profile Service Application it’s time to start the upgrade process, first delete the User Profile Service Application you just created and tick the ‘Delete data associated with the Service Applications’ check box, then backup and restore your Profile, Sync & Social databases from the 2010 environment to the new 2013 environment.

You will also need to export the encryption key from the 2010 environment using miiskmu.exe which is located in C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\Bin, just run this executable and follow the prompts you will need to enter the farm account credentials, then copy the exported key file to the 2013 environment.

Then using the same PowerShell script as before create the User Profile Service Application, make sure the database names in the script match the newly restored 2010 databases, the databases will be upgraded in the process of creating the User Profile Service Application.

Don’t be surprised if the ‘User Profile Synchronization Service’ service doesn’t start properly, you will need to stop both the ‘User Profile Service’ & ‘User Profile Synchronization Service’ services anyway to import the encryption key.

To import the encryption key you will need to log onto the server as the farm account, and run the command prompt as administrator, then run the following command:

miiskmu.exe /i "c:\path to you key file" {0E19E162-827E-4077-82D4-E6ABD531636E}

Note: The Guid in this command is the same everywhere, still not sure what it means or why you need it. Also if you do not log onto the server as the farm account for this process then your synchronization service will not start and will log errors like ‘User Profile Application: SynchronizeMIIS encounters an exception: System.NullReferenceException: Object reference not set to an instance of an object.’ to the ULS.

If all goes well then you should get a message window popup say operation was successful.

Now restart the ‘User Profile Service’ & ‘User Profile Synchronization Service’ services, and that’s it you should be up and running at this stage.

Once that is setup you might want to add the service proxy to the default group, which is one thing the above script does  not do, you can add the proxy to the default group via powershell like this:

$proxy = Get-SPServiceApplicationProxy -Identity 'guid of service proxy'

$group = Get-SPServiceApplicationProxyGroup -Default

Add-SPServiceApplicationProxyGroupMember $group.Name -Member $proxy



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s