Citrix XenApp, Citrix XenDesktop

Getting up and running with Citrix User Personalization Layering

In this post I am going to show you how to get up and running with Citrix User Personalization Layer (UPL) and a quick test to show it working.  So lets get stuck in!

So what is Citrix User Personalization Layering and what problem does it solve??  We have 2 types of desktops that we can deploy via Citrix – persistent and non-persistent.


With persistent desktops all the changes are saved to the desktops locally and users are generally assigned a 1-1 mapping of desktops. However, if there is a problem with that desktop then the user will need to either have the desktop re-built or assigned a new one.  Time consuming for the IT Helpdesk and also frustrating for the user.  Persistent desktops are generally treated like physical desktops, with OS Updates and patches pushed out to them individually.  Users are also able to install their own applications onto the desktop.

With non-persistent desktops any changes made to the desktop are wiped when the desktops are rebooted so you start with a clean image each time.  This means that images and profiles are generally central managed.  It can cause issues with application management as you need to install applications that the users need inside the single image, or make them available by other means i.e. App-V, Citrix Virtual Apps. AWS AppStream etc.  Non-persistent desktops are also normally coupled with a profile management solution so profile changes are saved between logons i.e. Citrix Profile Management, FSLogix, Ivanti Desktop Now.

So what if you wanted a central managed image which gives the users the ability to install their own applications whilst logging onto random desktops. Enter Citrix User Personalization Layering.  This has been introduced as part of Citrix Virtual Apps and Desktops 1912 LTSR release.

User Personalization Layers (UPL) replaces Personal vDisk which I am sure some of you remember, it was troublesome to say the least. Personally I never saw it in a production environment, but heard many horror stories around it. UPL uses the same layering technology as App Layering, which means that the User Layer attaches instantly. So lets get it installed and tested.

Installation & Configuration

Citrix User Personalization Layering is only supported on Windows 10 and only with pooled-static and pooled-random machine catalogs. When you install the VDA Agent in your master image make sure that you tick the “Citrix User Personalization Layer” option otherwise it won’t work.


Once you have built your image them you need to configure a Citrix Policy to enable the feature.  You can either create a new policy or modify one of your existing policies.


The settings are:

Computer Settings –> User Personalization Layer –> User Layer Repository Path

This is that path where your layers are going to be held.  You will need to ensure that this storage is highly available and has good connections. And obviously that there is enough space.  I would recommend doing a POC with a few users and seeing what the size is.  Obviously the size will depend on how many applications your users will install and what user profile changes are made.

Computer Settings –> User Layer Size in GB

This is the maximum size of the layer. By default it is set to 0 which means unlimited. I have set it to 10GB which should be more than enough.


To test this I have created a single machine catalog containing 3 VMs running Windows 10 1909 and a single test user. We will log onto one VM, install Notepad++, create an icon on the desktop and create an IE shortcut.  We will then log off and then log onto another desktop and see if the changes have persisted.

To check that it is working as expected you should see a disk attached to the VM labelled “UserLayerVolume” – this should be the size that you configured in the policy earlier.

If you navigate to the storage repository you should also see that a folder has been created for the user and a file created.  The Hard Disk Image is attached to the VM each time the user logs on. 


Now we will install Notepad++ onto the VM.  As you can see it has been installed onto MCS1909001 and we are able to launch successfully


If we now log onto MCS1909002 we can see that the layer has attached successfully and I can run the NotePad++ application which I installed on my non-persistent VM. Pretty cool eh!!

We are now up and running with Citrix User Personalization Layering.


Secure Boot problems

Whilst initially testing this feature when it was released I could not get it to work at all. I received the following error message when logging onto the desktop:


A few other users on twitter also reported the problem.  Andrew Webber reached out to me and mentioned that if you disable Secure boot then it fixes it, and that worked for me. Now that may not be the solution for some companies as Secure boot is a feature which you definitely want to use if possible, so its only a workaround for now.

To fix it I did the following:

1) Deleted all existing VMs and the catalog

2) Disabled Secure Boot on the master VM

3) Uninstalled and re-installed the VDA Agent

4) Created a new catalog


I hope you have found this guide to getting up and running with Citrix User Personalization layering useful. You can find more information about UPL here –


  1. Computer Settings –> User Layer Size in GB

    This is the maximum size of the layer. By default it is set to 0 which means unlimited.

    Doesn’t the help text say 0 = 10GB?

  2. Great article exploring the possibilities of User layer. I am glad that this was easy for you to configure and you were able to get it up and running. Secure Boot is a known limitation on our end at the point. We prioritized getting the functionality out in the LTSR and could not get around to getting our drivers signed.

    Do you intend to use User Personalization Layer in production? Is the Secure Boot limitation keeping you from using UPL in production environments.

    Keep the feedback coming. We love to hear from our users.

Leave a Reply

Your email address will not be published. Required fields are marked *