Citrix User Profile Manager: How Registry Exclusion Lists Can Mess Up Group Policy Processing

The documentation of Citrix User Profile Manager (UPM, for short) recommends excluding the following registry keys from processing:

HKEY_CURRENT_USER\Software\Policies
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

The net effect of this is that the Citrix profiles managed by UPM do not contain any policy settings. The reasoning behind this being: Policies are reapplied anyway during the next logon, so there is no reason to waste CPU cycles on synchronizing such “redundant” information.

Unfortunately, nobody had taken the group policy engine’s own optimizations into account. Policy processing is relatively costly in terms of performance. It is only logical to try and reduce the number of times policies need to be applied. Since policies are relatively static compared to the frequency of user logons, it makes sense to cache the policy settings in the user profile. That is exactly what the group policy engine does.

Actual settings are cached in the two registry keys mentioned above. What is still missing, though, is a way to detect new or changed policies in the domain. The policy engine thus needs to cache metadata on the applied GPOs in addition to the settings stored in those GPOs. Group policy metadata is stored in another area of the user’s registry hive:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy

Where is the Problem?

We have two locations containing data that relates to each other. Storing only one part of it and dropping the other breaks the group policy engine’s caching mechanism.

If HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy is present but HKEY_CURRENT_USER\Software\Policies is not, the engine thinks all policy information is present in the user profile whereas in reality it is not. As a result, policies effectively are not applied any more.

How to Fix it

Either exclude all three registry paths from processing by UPM or none of them. I recommend the latter, which leaves the group policy engine’s caching mechanism intact.

Wrap Up

Do not put any of these paths on UPM’s registry exclusion list:

Software\Policies
Software\Microsoft\Windows\CurrentVersion\Policies
Software\Microsoft\Windows\CurrentVersion\Group Policy

Note: Above paths are in the notation UPM expects (without the string “HKEY_CURRENT_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

Fast & Silent 5 Watt PC: Minimizing Idle Power Usage

Fast & Silent 5 Watt PC: Minimizing Idle Power Usage
This micro-series explains how to turn the Lenovo ThinkCentre M90t Gen 6 into a smart workstation that consumes only 5 Watts when idle but reaches top Cinebench scores while staying almost imperceptibly silent. In the first post, I showed how to silence the machine by replacing and adding to Lenovo’s CPU cooler. In this second post, I’m listing the exact configuration that achieves the lofty goal of combining minimal idle power consumption with top Cinebench scores.
Hardware

Fast & Silent 5 Watt PC: Lenovo ThinkCentre M90t Modding

Fast & Silent 5 Watt PC: Lenovo ThinkCentre M90t Modding
This micro-series explains how to turn the Lenovo ThinkCentre M90t Gen 6 into a smart workstation that consumes only 5 Watts when idle but reaches top Cinebench scores while staying almost imperceptibly silent. In this first post, I’m showing how to silence the machine by replacing and adding to Lenovo’s CPU cooler. In a second post, I’m listing the exact configuration that achieves the lofty goal of combining minimal idle power consumption with top Cinebench scores.
Hardware