Step-by-step guide to learn how to create and optimize a new Platform layer with Citrix App Layering.
More from the Lab!
- Building a Dual-Xeon Citrix Lab: Part 1 – Considerations
- Building a Dual-Xeon Citrix Lab: Part 2 – Hardware
- Building a Dual-Xeon Citrix Lab: Part 3 – Windows and Hyper-V installation
- Lab: Part 4 – Hyper-V Networking
- Lab: Part 5 – NetScaler 11 Architecture and Installation
- Lab: Part 6 – Configure NetScaler 11 High Availability (HA Pair)
- Lab: Part 7 – Upgrade NetScalers in HA
- Lab: Part 8 – Save, Backup and Restore NetScaler 11 configuration
- Lab: Part 9 – Install Microsoft SQL Server 2014 (Dedicated)
- Lab: Part 10 – Citrix Licensing demystified
- Lab: Part 11 – Install XenDesktop 7.6
- Lab: Part 12 – Setup NetScaler 11 Clustering (TriScale)
- Lab: Part 13 – Configure Published Applications with XenDesktop 7.6
- Lab: Part 14 – Citrix StoreFront 3.x
- Lab: Part 15 – Configure SSL in StoreFront
- Lab: Part 16 – StoreFront load balancing with NetScaler (Internal)
- Lab: Part 17 – Optimize and secure StoreFront load balancing with NetScaler (Internal)
- Lab: Part 18 – Secure LDAP (LDAPS) load balancing with Citrix NetScaler 11
- Lab: Part 19 – Configure Active Directory authentication(LDAP) with Citrix NetScaler 11
- Lab: Part 20 – RDP Proxy with NetScaler Unified Gateway 11
- Lab: Part 21 – Secure SSH Authentication with NetScaler (public-private key pair)
- Lab: Part 22 – Ultimate StoreFront 3 customization guide
- Lab: Part 23 – Securing Citrix StoreFront DMZ deployment
- Lab: Part 25 – Upgrade to Citrix StoreFront 3.7
- Lab: Part 26 – Install/Upgrade Citrix XenDesktop 7.11
- Lab: Part 27 – Getting started with Microsoft Azure
- Lab: Part 28 – Getting started with Citrix Cloud
- Lab: Part 29 – Configure XenDesktop And XenApp Service with Microsoft Azure and Citrix Cloud
- Lab: Part 30 – Configure Identity and Access Management in Citrix Cloud with Microsoft Azure AD
- Lab: Part 31 – Configure NetScaler Gateway Service for XenApp and XenDesktop Service in Citrix Cloud
- Lab: Part 32 – Configure MCS with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 33 – Configure Azure Quick Deploy with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 34 – Configure Site Aggregation for Citrix Workspace in Citrix Cloud with XenDesktop 7.x located on-premises
- Lab: Part 35 – Configure a Hybrid NetScaler MA Service environment in Citrix Cloud
- Lab: Part 36 – Configure ShareFile in Citrix Cloud with StorageZones on-premises
- Lab: Part 37 – Upgrade NetScaler HA pair with NetScaler MA Service in Citrix Cloud
- Lab: Part 38 – How to Configure Full VPN Setup with Citrix NetScaler in CLI
- Lab: Part 39 – Configure Multi-Factor Authentication with Azure MFA Service and Citrix Workspace
- Lab: Part 40 – Getting Started with Citrix App Layering
- Lab: Part 41 – Configure Citrix App Layering
- Lab: Part 42 – OS Layer with Citrix App Layering
- Lab: Part 43 – Platform Layer with Citrix App Layering
- Lab: Part 44 – Application Layers with Citrix App Layering
- Lab: Part 45 – Layered Image Deployment with Citrix App Layering
- Lab: Part 46 – Elastic deployment with Citrix App Layering
- Lab: Part 47 – User Layers with Citrix App Layering
- Lab: Part 48 – Windows 10 and PVS with Citrix App Layering
We discussed in the previous posts of this Citrix App Layering series how to install and configure the appliance. We also reviewed how to work with OS layers in App Layering. In this post, we will create our first Platform Layer and optimize that layer with best practices.
More from this Citrix App Layering series
- Introduction to Citrix App Layering
- Lab: Part 40 – Getting Started with Citrix App Layering
- Lab: Part 41 – Configure Citrix App Layering
- Lab: Part 42 – OS Layer with Citrix App Layering
- Lab: Part 43 – Platform Layer with Citrix App Layering
- Lab: Part 44 – Application Layers with Citrix App Layering
- Lab: Part 45 – Layered Image Deployment with Citrix App Layering
- Lab: Part 46 – Elastic deployment with Citrix App Layering
- Lab: Part 47 – User Layers with Citrix App Layering
- Lab: Part 48 – Windows 10 and PVS with Citrix App Layering
- Best Practices for Citrix App Layering
Platform layers are designed to support your environment. A platform layer includes your hypervisor tools and settings. The tools and settings make it easy to create layers by using virtual machines in your hypervisor environment. A platform layer that includes your hypervisor, provisioning service, and connection broker software isolates App and OS layers from the infrastructure where they are published.
Source: Citrix Documentation
Requirements
For this lab, you need the following:
- Citrix ELM installed and configured
- OS Layer imported
- Binaries for Citrix VDA, Receiver/Workspace App, PVS Target Device, etc
- Citrix Optimizer
- Permissions to create/edit GPOs
Best Practices for Platform Layer in Citrix App Layering
- Platform Layer has the highest priority of all layers. This layer will be applied last.
- Install Citrix Virtual Desktop Agent (VDA), Receiver/Workspace App, Real-Time Optimization Pack (RTOP), WEM and PVS Target Device software in the Platform Layer
- Do not install Windows Updates in this layer
- Join the machine to the domain
- Logon with a domain account to cache data in the layer. This will improve logon time.
- The Platform layer has the highest priority when creating the layered image. This means it is applied last so its settings will override all other layers.
- Single Sign-on applications must be installed in this layer (Ex: Imprivata)
- Video drivers (nVidia, AMD) can be installed in this layer
- Do not disable iPV6 (for PVS). Do it in the OS Layer.
- Changes made to local users and groups are not saved in this layer. Use GPOs instead.
- You can add additional disks but you must remove them before finalizing the disk in the ELM console
- If you want to deploy this image on a different hypervisor, install the hypervisor tools in this layer.
- Check this link for more best practices
- To have a Write Cache disk with PVS, you must attach the same disk to the Platform Layer. Install it in the layer. Then shutdown the layer and remove the disk before finalizing (See CTX232126).
- Run Citrix Optimizer to apply Citrix optimizations. Windows optimizations were applied in the OS layer in the previous post.
Create a new Platform layer in Citrix App Layering
Go to ELM console > Layers > Platform Layer and select Create Platform Layer.

Click on Create Platform Layer.
Enter layer details:

Select the OS Layer.

Select the connector to be able to browse the virtual machines.

Select Platform types.

Enter a disk filename.

Assign an icon.

Select Create Layer to confirm.

Creation in progress.

ELM will create 2 new disks in the /mnt/repository/Unidesk/Packaging Disks/ folder in the App Layering Repository.

The last step is copy the disks in the cache.

Note: disks are thick provisioned.
Once the disks are copied in the cache, ELM will start the virtual machine for editing.

The virtual machine is now available in the Hyper-V console:

In Hyper-V console, we can see that 2 disks are mapped the virtual machine.

Connect to the virtual machine.

Add the virtual machine to the domain. Reboot and then logon with a domain account to cache domain information in the layer.

Note: move the computer object in the correct OU.
Install Citrix Virtual Desktop Agent, Citrix Receiver/Workspace app and then PVS Target Device (if needed).

Note: Make sure you have installed Microsoft Visual C++ libraries in the OS Layer or VDA will install them in the Platform Layer.
Install Citrix PVS Target Device in the layer.
Reboot the virtual machine.
Take a look at the Local groups.
Citrix VDA install created the following local groups:
- Direct Access Users
- Anonymous
And added users in few others:
- NT Service\CitrixTelemetryService in Performance Log Users
- NT Service\BrokerAgent in Performance Monitor Users
This configuration will not be captured in the layer. You need to create a domain GPO to applies the configuration.
Additionally you can also add few others:
- NT AUTHORITY\Authenticated Users in Remote Desktop Users
- <DOMAIN>\<CITRIX_ADMIN_GROUP> in Administrators
- <DOMAIN>\<CITRIX_DA_USERS> in Direct Access Users
Note: NT Service accounts can only be added via Group Policy Preferences
See below an example of implementation via GPO.

Run Citrix Optimizer with the appropriate template

Once you are done with the optimizations, click on Shutdown For Finalize.

Go to ELM console > Layers > Platform Layer and right click on the Platform layer.
Select Finalize.

ELM will temporary upload the disk in: /mnt/repository/Unidesk/Finalize Disks/ during the finalization. Then it will move it to /mnt/repository/Unidesk/Layers/App/.

The layer is now Deployable in ELM.

Update Platform Layer
Go to ELM console > Layers > Platform Layers and select the Platform layer.
To update the Platform layer, right click and Add Version.

Increment the version number and add a description.

Select the OS Layer.

Select the connector where ELM will deploy the virtual machine.

Select Platform Types.

Enter the disk filename.

Confirm the creation.

ELM will prepare the OS Layer image.

After few minutes, ELM will start to create to deploy the virtual machines and its disks.

See below the virtual machine created in Hyper-V.

When everything is ready, ELM will automatically start the virtual machine.

The virtual machine is available. Logon and install updates.

Note: if a reboot is required during the updates, it is recommended to reboot a second time.
Then click on Shutdown For Finalize (the icon is available on the desktop by default).

The virtual machine will shutdown.
Go to the ELM console > Layers > OS Layers and right click on the OS_2016 layer.

Select Finalize.
ELM will copy the disk from the share to the repository.
Location: /mnt/repository/Unidesk/Finalize Disks/.

Then ELM will copy it to the layer disk.

Location: /mnt/repository/Unidesk/Layers/App/.

The last step is remove the virtual machine in Hyper-V.

The new version of the layer has been deployed.

Export layer
Go to ELM console > Layers > Platform Layers and select Export.
You can export layers for backup or to transfer them to a different ELM infrastructure.

Select a network location and enter the proper credentials.

Select the item you want to export.

Select Finalize to export.

Take a look at the folder for the exported files.

Delete version of a OS layer
Right click on the OS layer and click on Delete Versions.

Select the version you want to delete. You can also delete the full layer with all its versions.

Click on Delete Versions to confirm.

Cancel a layer revision
Go to the layer task and click on Cancel to flush the current version of the layer.

ELM will flush everything for this version of the OS layer.

Import Layer
Go to ELM console > Layers > Platform Layers and select Import.
Specify the path and the credentials.

Select layer/version to import.

Confirm the import.

More from the Lab!
- Building a Dual-Xeon Citrix Lab: Part 1 – Considerations
- Building a Dual-Xeon Citrix Lab: Part 2 – Hardware
- Building a Dual-Xeon Citrix Lab: Part 3 – Windows and Hyper-V installation
- Lab: Part 4 – Hyper-V Networking
- Lab: Part 5 – NetScaler 11 Architecture and Installation
- Lab: Part 6 – Configure NetScaler 11 High Availability (HA Pair)
- Lab: Part 7 – Upgrade NetScalers in HA
- Lab: Part 8 – Save, Backup and Restore NetScaler 11 configuration
- Lab: Part 9 – Install Microsoft SQL Server 2014 (Dedicated)
- Lab: Part 10 – Citrix Licensing demystified
- Lab: Part 11 – Install XenDesktop 7.6
- Lab: Part 12 – Setup NetScaler 11 Clustering (TriScale)
- Lab: Part 13 – Configure Published Applications with XenDesktop 7.6
- Lab: Part 14 – Citrix StoreFront 3.x
- Lab: Part 15 – Configure SSL in StoreFront
- Lab: Part 16 – StoreFront load balancing with NetScaler (Internal)
- Lab: Part 17 – Optimize and secure StoreFront load balancing with NetScaler (Internal)
- Lab: Part 18 – Secure LDAP (LDAPS) load balancing with Citrix NetScaler 11
- Lab: Part 19 – Configure Active Directory authentication(LDAP) with Citrix NetScaler 11
- Lab: Part 20 – RDP Proxy with NetScaler Unified Gateway 11
- Lab: Part 21 – Secure SSH Authentication with NetScaler (public-private key pair)
- Lab: Part 22 – Ultimate StoreFront 3 customization guide
- Lab: Part 23 – Securing Citrix StoreFront DMZ deployment
- Lab: Part 25 – Upgrade to Citrix StoreFront 3.7
- Lab: Part 26 – Install/Upgrade Citrix XenDesktop 7.11
- Lab: Part 27 – Getting started with Microsoft Azure
- Lab: Part 28 – Getting started with Citrix Cloud
- Lab: Part 29 – Configure XenDesktop And XenApp Service with Microsoft Azure and Citrix Cloud
- Lab: Part 30 – Configure Identity and Access Management in Citrix Cloud with Microsoft Azure AD
- Lab: Part 31 – Configure NetScaler Gateway Service for XenApp and XenDesktop Service in Citrix Cloud
- Lab: Part 32 – Configure MCS with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 33 – Configure Azure Quick Deploy with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 34 – Configure Site Aggregation for Citrix Workspace in Citrix Cloud with XenDesktop 7.x located on-premises
- Lab: Part 35 – Configure a Hybrid NetScaler MA Service environment in Citrix Cloud
- Lab: Part 36 – Configure ShareFile in Citrix Cloud with StorageZones on-premises
- Lab: Part 37 – Upgrade NetScaler HA pair with NetScaler MA Service in Citrix Cloud
- Lab: Part 38 – How to Configure Full VPN Setup with Citrix NetScaler in CLI
- Lab: Part 39 – Configure Multi-Factor Authentication with Azure MFA Service and Citrix Workspace
- Lab: Part 40 – Getting Started with Citrix App Layering
- Lab: Part 41 – Configure Citrix App Layering
- Lab: Part 42 – OS Layer with Citrix App Layering
- Lab: Part 43 – Platform Layer with Citrix App Layering
- Lab: Part 44 – Application Layers with Citrix App Layering
- Lab: Part 45 – Layered Image Deployment with Citrix App Layering
- Lab: Part 46 – Elastic deployment with Citrix App Layering
- Lab: Part 47 – User Layers with Citrix App Layering
- Lab: Part 48 – Windows 10 and PVS with Citrix App Layering