Wilco van Bragt - LinkeIn Wilco van Bragt - Twitter rssa 

Migrating User Settings with FPK

The most important part of IT is providing your customer/users with a IT infrastructure were they can do their work without any disturbances. In some other words pleased and happy users (of your customer). 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 out of the user eyes.

Introduction




 

Every change in their current environment will be taken with suspicious in the first place and need to prepared 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 a lot.

The users environment is stored in the profile of the user. A profile exists of registry settings and a set of folders. Both exists of operating system user settings as application configuration. Most operating system from Microsoft are have a lot of common configuration 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 carry the old profile with all kinds of rubbish into your new environment.

On the other hand the user are already superstitious for this big changes and do not like to configure their user environment again.

Clean start against retaining the user settings

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

As already explained the user configuration is stored or in the registry or 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 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 none of your goal s 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 when writing this article) exists of two parts:

  • Profile wizard

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

  • Flex Framework

Flex Framework is introduced with the Flex Profile Kit version 4. 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, password and certificates. Flex Framework exists of a little installation MSI file, which can be easily installed complete unattended (using for example a Software Distribution mechanism).

The first question you should ask yourself which settings you would like to migrate from the current environment and which part of the Flex Profile Kit is needed for that one. For example if you would like to migrate password and certificates you need to install the framework into the current environment. A consideration should be made what the benefits are between the costs, time and risks for installing the framework. Don't think to bad about it, actually it is just adding another application to your infrastructure and probably that will be done on a regularly base.  Anyway this decision determine the possibilities you have to migrate settings.

Software user settings

If you can migrate the user configuration of your applications depends completely which applications and their version you are going to use. If you upgrade your Office version from 2003 to 2007 version there is no possibility for migrating the sessions. But probably there are some software product you still uses the same version. Just find out were the applications stores his configuration in the registry. For example Adobe Acrobat Reader stores his settings in [HKCU]\Software\Adobe\Adobe Reader\<version number>, Winzip stores his settings in [HKCU]\Software\Nico Mak Computing and the Microsoft Office products can be found [HKCU]\Software\Microsoft\Office\<version number>. All these application settings can be easy migrated if you still will be using the same version.

Microsoft Outlook is one of those example you definitely make your user happy if they need to configure their selves. The mailbox configuration are stored in HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem and

HKCU\Software\Microsoft\Windows Messaging Subsystem\Profiles\Outlook. You can even migrate these settings when you are going to use when you are going to use a higher version of Outlook.

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

Windows settings

Although you are implementing a new operating system several configuration settings are on exactly the same in these different version and can be easily imported in your new infrastructure.

If you are using Multilingual User Interface (MUI) on 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 the user do not really like. If you do not change anything to your printservers and queues you can migrate these setting using the registry keys HKCU\Printers and HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device.

Also 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 and the keyboard settings can be find at HKCU\Keyboard Layout and HKCU\Control Panel\Keyboard.

Other settings you could think of are for example recent document (stored in HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs) or  favorites (stored by default %userprofile%\Favorties).

What should be done: Step 1

The first step is to identify which registry keys (assuming that we only use the Profile Wizard)  are needed. These registry settings should be filled in one or more INI files that will be used by the Profile Wizard. Actually you are just following the steps of 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 migrate settings INI file.

What should be done: Step 2

After creating the INI file you should arrange that the settings are actually captured on the current environment. Therefore you should create or modify the logff 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 stores 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 actually migration starts, so you can ensure that (almost) every user have logged off so his 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 on the new environment for every user. In this script you should run the Profile wizard again. Of course again the executable should be available for all users. Just ensure that

The command could be Proflwiz.exe /I migratesettings.ini /r %homedrive%%homepath\migration\migrate.ops. Ensure that the script only read ones, otherwise setting modified by the user will be overwritten the next time he logs on.

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

If you installed the framework, follow the FPK Manual and use the VBS script command line in stead 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 build for using Hybrid Profiles this migration strategy can be used with every profile type so also 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 change I recommend to consider using a Hybrid Profile solution.

Conclusion

One of the success factors of a migration is that the users are satisfied. This can be  accomplished by migrating user settings to the new environment. In this article I described the considerations for migrating the settings, 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 how you can create the necessary files. The Flex Profile Kit can be downloaded from LoginConsultants.com (Registration Required).

Article previous published at MSTerminalServices.org.