At my current Sharepoint 2003 to 2007 migration project, we have to migrate Sharepoint 2003 users to a different domain server. On my world wide web search I bumped into an utility called “SPUserUtil” that was part of the “SharePoint Utility Suite”, but unfortunately the author decided to take the project offline and it is no longer available.

This blog post from Alexander Windel provided enough information about the process of migrating Sharepoint users. For WSS sites you can use the “stsadm -o migrateuser” command, but this is not enough for a Sharepoint 2003 Portal Server. The problem is that you’ll also need to use code to call the function PortalAccountMigrationManager.MigrateAccount() in the object model.

Last evening I created a small Sharepoint user migration utility, to make our life a bit easier. It will run both commands for you and it will allow you to migrate a larger batch of Sharepoint users at once.

Step 1)
Scan for users in your site collection to create the basic user xml file:
MigrateSPUsers.exe -detectusers http://mysitecollection -userfile users.xml

Step 2)
Edit the user xml file. Remove users that should not be migrated or add missing users. Change the “NewLogin” nodes to include the new account information.

Migrate sharepoint users xml file

Step 3)
Start the Sharepoint user migration by providing the tool the following parameters
MigrateSPUsers.exe -migrateusers -userfile users.xml
or for a Sharepoint Portal Server use
MigrateSPUsers.exe -migrateusers -userfile users.xml -portal -ignoresidhistory

Step 4)
Done! Check your Sharepoint site to see if all your users are correctly migrated.

Please note that you have to run this application at the Sharepoint server with enough user rights. The server should also contain the .Net2 runtimes. This utility is for use with Sharepoint 2003 only and it is for use on your own risk.

Click here to download MigrateSPUsers v1.0