Citrix User Profile Manager 5 Years Ago: Birth

Citrix User Profile Manager is pretty well-known in the SBC space today. Five years ago, things were quite different. Citrix did not have a user profile solution, and neither did sepago. But we had an idea spinning in our heads we soon came to call Smooth Profiles. Slowly that idea became code, then was renamed to sepagoPROFILE, was acquired by Citrix and renamed again to User Profile Manager and then again to Profile management (with capital P and lower-case m!). You may have heard the latter part of the story. Here is a little something from the very beginning.

A few days ago I stumbled upon an old notebook containing, to my surprise, the very first notes about what was to become sepago’s profile management product:

Citrix User Profile Manager 5 Years Ago: Birth

For those that either do not read German or my handwriting here is a transcript:

Smooth Profiles

Requirements:

  • User has a mandatory profile
  • Directory on file server for storage of .reg file

Logoff:

  • If .reg file exists it is imported to HKCU$SmoothProfile
  • Recursively iterate through HKCU and compare each key’s timestamp with %LOGONDATE%
  • If key in HKCU is newer:
    • Copy subkeys (without children) and values to HKCU$SmoothProfile
  • Unload HKCU$SmoothProfile to .reg file

Please note:

  • Backup and restore privileges (work around that by using a service)
  • Multiple concurrent logoffs (wait if .reg file is locked)

End of transcript.

It is not dated, but it should be from April 2005.

Remarks

As you may have guessed from the transcript we initially thought it would be sufficient to store registry data since the relevant folders of the profiles would be redirected to a file server anyway.

But apart from that this first draft already shows some characteristics of the later sepagoPROFILE:

  1. Code everything in a Windows service, which gets us all the privileges we need and has the additional advantage of not having to modify logon scripts when deploying the solution.
  2. Use the timestamps on registry keys to determine what has changed during a session.
  3. Robustly handle concurrency in Terminal Server environments (multiple sessions per user).

Comments

Related Posts

Differences Between Citrix Profile Management and Immidio Flex Profiles

From time to time I get asked about the differences between Citrix’s and Immidio’s profile management products. Here are some common questions along with my answers. Can the product be used to provide a single profile on multiple platforms? Citrix Profile Management 3.x does not have cross-platform capabilities built in. That means you cannot use an XP profile on Windows 7, but you can use the same profile on 32 and 64 bit Windows, if you dare. Citrix has a beta version of PM with cross-platform support for MS Office and Internet Explorer. Flex Profiles does not have true cross-platform capabilities either, but it can be used to make settings available cross-platform that have the same format on all platforms. Example: HKCU\Software\Paint.NET is probably a no-brainer whereas copying HKCU\Software\Microsoft\Internet Explorer around is probably a bad idea. Can the product be used on SBC, VDI and fat clients? This is true for both Citrix PM and Flex Profiles (licensing restrictions may apply). Can the product be used to preconfigure a user’s environment? Both Citrix Profile Management and Immidio Flex Profiles are classic profile management products without the capability to set up a specific user environment or distribute updated settings to all users. That is typically referred to as “user environment management” and two free implementations are Microsoft’s Group Policy Preferences and Pierre Marmignon’s Virtual User Environment Manager. Of course there are many alternatives by companies like AppSense or RES. Can portions of the profile be saved during a session as well as at logoff and at disconnects? Citrix Profile Management loads (respectively streams) the profile at logon and writes changes back at logoff. It also has a feature called “active write back” which, if enabled, causes changed files to be written back to the user store immediately. This works for files only, not for registry keys. Flex Profiles typically is configured to import settings at logon and export again at logoff. Since Flex uses a simple tool for the imports/exports it is conceivable to call that tool during a session as well. There is, however, no built-in support for that. Neither is there for exporting settings at disconnects. Can it be configured what to save and what not? Both products are very flexible when it comes to which parts of the profile should be saved. Yet there is one major difference: by default, Profile Management saves everything whereas Flex Profiles saves nothing. As a consequence, PM just works out of the box whereas Flex needs to be configured for each application individually.
User Profiles

Latest Posts