Migrating User Settings with the Flex Profile Kit

by [Published on 21 March 2007 / Last Updated on 21 March 2007]

How you can use Flex Profile Kit to migrate user settings.

The most important part of IT is providing your customers/users with a IT infrastructure were they can do their work without any disturbances. In other words, maintaining pleased and happy users. In this article, I will describe how you can use Flex Profile Kit to migrate user settings in such a way the implementation of a new system will be carried out smoothly and transparently. A link to the Kit is available at the end of the article.

Introduction

Every change in a user's current environment will be taken with suspicion and must be prepared for and planned thoroughly. Certainly a new system like a new Operating System or Server Based Community system is very big step for the end users, because their user environment is also changing drastically.

The user's environment is stored in their profile. A profile consists of registry settings and a set of folders. Both of those consist of Operating System user settings as application configurations. Most Microsoft Operating Systems have a lot of common configurations in the profile, but also have their own specific settings. Because of this behavior it is not common (and advisable) to use the same profile on several Operating Systems.

So when you introduce a new Operating System (like a migration from Windows XP to Vista) or a migration from fat clients to a Server Based Computing (like a migration from Windows 2002 Professional to Windows 2003 Terminal Servers) you do not want to move the old profile with all kinds of rubbish into your new environment.

On the other hand, the users are already superstitious about this change and also do not like the fact that they have to reconfigure their environment.

Clean Start vs Retaining User Settings

Those two divergent wishes can be reached by creating a new default profile and importing the current user configuration settings from the current environment. But how can you grab the settings you want to retain out of the current profile and put them in the new profile on a user by user basis?

As already explained, user configuration is stored in the registry or in some folders within the Documents and Settings folder (assuming that at least Windows 2000 is being used). Probably most of the readers already know the Hybrid Profile. A Hybrid profile combines the speed and robustness of a Mandatory profile and the option to save defined configuration settings. An attribute of a Mandatory profile is that user settings are not retained when the user logs off. A Hybrid profile product takes care that (normally) user settings defined by the administrator are saved when the user logs off and are restored after the Mandatory profile is loaded. This behavior is exactly what we are going to use to migrate our user settings.

In this article I will use the Flex Profile Kit, which is a freeware product developed by Login Consultants. Because it’s freeware it can also be used if one of your goals is to implement a hybrid profile solution (but more about that later on).

Flex Profile Kit

The current Flex Profile Kit (5.1 is the latest version as of writing this article) consists of two parts:

  1. Profile wizard

The profile wizard is able to save and restore defined registry keys and several folders within the profile folder. This component consists of a single executable that needs no installation on the machine.

  1. Flex Framework

The Flex Framework was introduced in the Flex Profile Kit v4. Flex Framework can save and restore settings that are not possible with the Profile Wizard. Examples are Mouse Settings (left handed mouse), Keyboard Settings, Windows appearance settings, passwords and certificates.

The Flex Framework consists of an installation MSI file, which can be easily installed, completely unattended (using, for example, a Software Distribution mechanism).

The first question you should ask yourself is which settings you would like to migrate from the current environment and which part of the Flex Profile Kit is needed to accomplish that. For example, if you would like to migrate passwords and certificates you need to install the framework into the current environment. One should consider what benefits there are in regards to the costs, time and risks involved when installing the framework. However, there is no need to think too harshly of it. After all, it is just adding another application to your infrastructure and probably that will be done on a regular basis.

Software user settings

Migrating an application's user configuration depends entirely on which applications and their version you are going to use. If you upgrade your Office version from 2003 to 2007 it is not possible to migrate the sessions.

But there will probably be some products where you would continue using the same version. Just find out where the application stores the configuration data in the registry. For example Adobe Acrobat Reader stores its settings in:

[HKCU]\Software\Adobe\Adobe Reader\<version number>

Winzip stores its settings in:

[HKCU]\Software\Nico Mak Computing

The Microsoft Office products can be found in: 

[HKCU]\Software\Microsoft\Office\<version number>

All these application settings can be easy migrated if you continue using the same version.

Microsoft Outlook is one of those examples where you will definitely make your users happy if they don't need to configure it again. The mailbox configuration is stored in:

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem 

HKCU\Software\Microsoft\Windows Messaging Subsystem\Profiles\Outlook

You can even migrate these settings when you decide to use a newer version of Outlook.

When migrating application settings remember that some applications also store information in the folder within the profile. Do not forget these folders!

Windows Settings

Although you are implementing a new Operating System several configuration settings are exactly the same in different versions and can be easily imported into your new infrastructure.

If you are using Multilingual User Interface (MUI) in your environment this setting can be easily migrated. The settings are stored in:

HKCU\Control Panel\Desktop\MultiUILanguageID and HKCU\Control Panel\Desktop\MUILanguagePending

Adding printers is also one of the activities that users do not really like. If you do not change anything to your print servers and queues you can migrate these setting using the registry key:

HKCU\Printers and HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device

Your mouse and keyboard settings can be imported (a requirement is that the framework is installed on your new environment). The settings are stored within:

HKCU\Control Panel\Mouse and HKCU\Control Panel\Cursors for the mouse.

Keyboard settings can be found at:

HKCU\Keyboard Layout and HKCU\Control Panel\Keyboard

Other settings are, for example, recent documents: 

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs 

Favorites: 

%userprofile%\Favorties

What Should Be Done: Step 1

The first step is identifying which registry keys (assuming that we only use the Profile Wizard) are needed. These registry settings should be filled in with one or more INI files that will be used by the Profile Wizard. Actually you are just following the steps contained the Flex Profile Kit manual.

For example, migrating the MUI settings, the keyboard and mouse settings, Winzip, and printer settings will be represented in the following INI file.

[Header]
Version  = 11.0
Product  = Microsoft Office 11.0

[IncludeRegistryTrees]
HKCU\Control Panel\Desktop\MUILanguagePending
HKCU\Control Panel\Desktop\MultiUILanguageID

HKCU\Control Panel\Mouse
HKCU\Control Panel\Cursors
HKCU\Keyboard Layout
HKCU\Control Panel\Keyboard

HKCU\Software\Nico Mak Computing

HKCU\Printers

[IncludeIndividualRegistryValues]
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device

Figure 1: Example migration settings INI file.

What Should Be Done: Step 2

After creating the INI file you should ensure that the settings are actually captured on the current environment. Therefore you should create or modify the logoff script. In this script you should add the following command line that stores the settings configured in the INI file into a file. You should ensure that the proflwiz.exe can be started (so it is in a place the user can access it), that the INI file is available and that you specify a location where the configuration file can be stored. For example you store the proflwiz and the INI file into your SYSVOl folder where you also have defined your logoff script and store the configuration file in the users home folder (preferable in a hidden directory). The command line could be for example:

Proflwiz.exe /I migratesettings.ini /s %homedrive%%homepath\migration\migrate.ops

Add this part to the logoff script for a couple of weeks before the actual migration starts, so you can ensure that (almost) every user has logged off so their current settings are stored.

What Should Be Done: Step 3

When you really start the migration you should ensure that a script is available that runs at the first logon to the new environment for each user. In this script you should run the Profile wizard again. Of course, the executable should be available for all users.

The command could be:

Proflwiz.exe /I migratesettings.ini /r %homedrive%%homepath\migration\migrate.ops

Ensure that the script only reads once, otherwise any settings modified by the user will be overwritten the next time they log on.

Do not forget to change the user properties to reflect the profile location to the new location otherwise the old profile will be loaded on to your new infrastructure.

If you installed the framework, follow the FPK Manual and use the VBS script command line instead of the command line I described in this article.

Do I need implement Hybrid Profiles for this?

No, you don’t. Although the Flex Profile Kit is built for using Hybrid Profiles, this migration strategy can be used with every profile type including roaming profiles. In a roaming profile situation you would define a new roaming profile location, import the migration OPS once, and when the user logs off all settings are stored again in the roaming profile folder.

But for several reasons, as mentioned in the article Terminal Server and the Profile Challenge, I recommend using a Hybrid Profile solution.

Conclusion

One of the success factors of a migration is that users are satisfied. This can be  accomplished by migrating user settings to the new environment. In this article, I described the considerations that must be taken into account when migrating settings and supplied some sample settings that can be migrated and how this can be accomplished using the Flex Profile Kit.

In the Flex Profile Kit package several examples of applications settings are already available and also the manual will provide you with more information on how you can create the necessary files. The Flex Profile Kit can be downloaded from LoginConsultants.com (Registration Required).

The Author — Wilco van Bragt

Wilco van Bragt avatar

After working for a couple of consulting firms as a senior technical consultant and technical project leader Wilco started his own freelance company VanBragt.Net Consultancy in April 2008. Wilco is certified n Citrix (CCIA, CCEE/CCEA, CCA), Microsoft (MCITP, MCTS, MSCE, MSCA) and Prince2 (Foundation). Wilco is also a RSVP (RES Software Valued Professional), Citrix CTP (Citrix Technology Professional) and a Microsoft MVP (Most Valuable Professional) on RDS.

Latest Contributions

Featured Links