Site Loader

Hi Everyone,

I have bin busy to figure out how to migrate my SharePoint 2007 multitenant environment to my new 2010 environment. I tried a few 3rd party tools, but none of them was good enough I my opinion.

So I decided to do the migration with the Microsoft tools and commands. Lets start!

First you’re 2007 environment must be at least 2007 Sp2, all version before that are not able to upgrade to SharePoint 2010.

– Detach the 2007 database and move it to the 2010 environment.
– Attach the database into you’re new environment.
– check if the database is ready for upgrade with the following command:

Test-SPContentDatabase -name databasename -Webpplication http://webappname

Some of the templates could be broken like Knowledge Base or Project Tracking Workspace. Just install the 2007 wsp files into you’re 2010 environment. Now it is possible to view the old templates.
If have read that it is possible to fix these template by using the fab40 templates, you will find them here: I did not test this because we did not have any issues.

Ok, lets migrate you’re sites!
– Mount you’re SharePoint database

Mount-SPContentDatabase -Name databasename -DatabaseServer databaseserver -WebApplication http://webappname

Now you can use you’re sites in the new environment. But they are not multitenant yet!
– Find youre fearture pack


and create a new site subscription for each site

$FeaturePack = "47f525b4-97ad-4319-955c-2248508781b4" $subscription = New-SPSiteSubscription Set-SPSite -Identity http://prefix.domain.ext -SiteSubscription $subscription -Confirm:$false 

– Now we can set the feature pack and the people picker

Set-SPSiteSubscriptionConfig http://prefix.domain.ext -FeaturePack $FeaturePack -UserAccountDirectoryPath distinguishedname

In my new envirionment we use claims based authentication, and the old environment has NTLM authentication. So I had to change all users from NTLM to claims based… How to do that? It’s easy 😉

$sites = Get-SPContentDatabase Databasename | Get-SPSite -Limit ALL foreach ($site in $sites) { foreach ($user in $site.RootWeb.AllUsers) { $newuser = $user -replace "DOMAIN","i:0#.w|DOMAIN" Move-SPUser -IgnoreSID $user -newalias $newuser -Confirm:$false } }

Sander click to find out more