Citrix App Layering (fermerly Unidesk) is a tool that helps you build your VDI image.

Benefits of Citrix AppLayering

  • With Citrix App Layering you can compose different images based on the layered applications. That way it is easy to build a Test, Acceptance and Production image.
  • Some organizations maintain multiple golden images because they have to maintain multiple user profiles (eg: Marketing apps differ from those at Accounting). It is recommended to limit the number of golden images to make it easier to manage. With Citrix AppLayering you can use Elastic Layers. It contains applications that are added to the computer during logon, depending on Active Directory group membership. In case you don’t wish to use Elastic Layers (because they come at a performance cost and not all applications are compatible with Elastic Layers), with App Layering you can create image combination easily, while only installing each application once (per layer)
  • Citrix App Layering comes with a solution for the user profiles: User Layers. These layers, a VHDX file per user, are connected to the computer at logon, and disconnected at logoff. That way, users maintain their settings (and possibly installed applications) between sessions. From experience I noticed that it is generally faster than other (streaming) profile solutions like Remote Profiles, Citrix UPM, Ivanti Personalization server and others.

Improvements I would like to see

  • One of the biggest downsides is that it’s very hard to call this an automation tool. Installations still happen mostly through the GUI. Using automation scripts is possible, but very complex, especcialy since the different layers are not part of the Domain during setup.
  • It would be so beautiful if it were possible to create a new OS layer and (try to link) all the existing platform and application layers to it. In that way, it would be much easier to keep up with the fast pace of new Windows 10 versions. Currently, a new OS layer means repackage all the apps.
  • From my tests I see that App Layering has more impact on the logon performance than I would like. Maybe I missed something, some wrong configuration, but so far I can only conclude that a Layered golden Image needs more time to logon then the same setup without App Layering. And I’ve looking at it together with Citrix Support for weeks now.

Below you can find my notes from the field on App Layering. Things I sometimes had to learn the hard way.

Setup and Configuration

The best possible online resource on setting up and configuring Citrix App Layering can be found on the page of Carl Stalhood. His page is always up to date and is a very detailed step-by-step guide:

One note: When you setup the App Layering appliance (Enterprise Layer Manager or ELM) and you connect to it for the first time, don’t be shocked. You’ll need Silverlight, and a browser that supports Silverlight (thus not Google Chrome).

Log File & Troubleshooting

Citrix App Layering Service Log file can be found here: C:\ProgramData\Unidesk\Logs\ulayersvc.log

Important to know here is that there is a request 1 and a request 2. According to Citrix:

“We return control to the login process at the end of Request 1.  Request 2 is our system tray application checking in, and that app is started by explorer when you get your desktop showing.  So request 2 starting is actually an indicator that the entire login process is complete.”

By default, ulayersvc.log only logs events INFO or higher.  You may determine that you want more detailed logging.  To turn on DEBUG logging, you need to edit a configuration file. The setting must be present before Ulayer.exe starts, which normally means it must be present before the machine boots.  So you cannot set it from a GPO, for instance.

Update C:\Program Files\Unidesk\Layering Services\ulayer.exe.config.
<level value=”INFO”/>
<appender-ref ref=”LogFileAppender”/>
Change INFO to DEBUG and save.

Layer Versioning

Updating the software in an OS, Platform, or App layer is easy. You add a version to the layer, install the upgrade or patch on the packaging machine and then finalize the layer.

Once updated, you deploy the new layer version with an update image version to your provisioning tool.

  • In case your provisioning tool is Citrix PVS, and you wish to use the build-in versioning of the image (on top of the App Layering versioning) then don’t make multiple layer versions of the Platform Layer. I experienced issues where Platform Layer versions created instability with PVS functionalities. I also read on other forms where people experienced network issues on Platform Layer versions.

PVS Write Cache

When using Elastic Layers in combination with PVS, make sure that you prepare for an XL write cache. Citrix PVS typically does it’s caching based on disk blocks, but AppLayering with Elastic Layers enabled will do this on a file-base. This increases the RAM needs as well as the local disk size requirements.

Great Resources on Citrix App Layering