Introduction
Creating personalization settings to include registry keys that contain a ! character within their path will cause personalization to capture far more of the registry than was intended.
Detail
When an Application Group or a Windows Settings Group, contains a registry include which has a ! character within the registry path, the data captured within personalization will contain a lot more of the registry than was intended.
For example, if we look at the following configuration:
We have two registry includes for the Registry Flags Windows Settings Group:
HKEY_CURRENT_USER\SOFTWARE\!AppSenseFlags\
HKEY_CURRENT_USER\SOFTWARE\AppSense\RunOnceChecks\
If this Windows Settings Group is assigned to a Personalization Group, then all users within that Personalization Group will capture the whole of the HKEY_CURRENT_USER\SOFTWARE\ registry not just the two sub-keys that are actually defined.
The cause of this behavior is the ! character within the first registry include. This special character causes the personalization to ignore any trailing characters within the include definition. So in the above example, HKEY_CURRENT_USER\SOFTWARE\!AppSenseFlags\ is just seen and processed as HKEY_CURRENT_USER\SOFTWARE\.
Solution
Instead or specifying the include with the ! character you can use a wildcard instead, either * or ?.
For instance in the above example, if we change the includes to the following, we will only capture the specified keys and not the entire HKEY_CURRENT_USER\SOFTWARE key.
HKEY_CURRENT_USER\SOFTWARE\?AppSenseFlags\
HKEY_CURRENT_USER\SOFTWARE\AppSense\RunOnceChecks\
Comments