Navigation
This page assumes the Enterprise Layer Manager (ELM) has already been imported and configured. This page is based on VMware vSphere. For Hyper-V and PvS focused instructions, see Create and update the OS Layer by CTP George Spiers. For Azure, see How to configure Citrix Cloud – App Layering 4.x to deliver virtualized apps and Office 365 caching – User Layers for XenApp and XenDesktop Service Cloud Workspaces in Microsoft Azure by CTP Christiaan Brinkhoff.
- Change Log
- Layers Overview
- Operating System Preparation
- vSphere Connector
- Platform Layer
- Update OS and Platform Layers (Add Versions)
- App Layers, Image Templates, and Publishing (separate page)
Change Log
- 2024 March 27 – Updated OS Prep section for Layering 2403.
- 2022 July 18 – added link to Citrix Blog Post Citrix App Layering and reporting.
- 2021 Dec 25 – Platform Layer – added screenshots of new HTML5 interface.
- 2021 Feb 22 – Layers Overview – added link to Citrix Blog Post How to approach designing your app layering strategy
- 2020 July 14 – OS Layer – added link to CTX255870 Windows 10 v2004 – Citrix Known Issues
Layers Overview
25-page Citrix App Layering Reference Architecture at Citrix Tech Zone details the following:
- Why App Layering
- Technical Overview of Citrix App Layering
- Types of Layers
- App Layering Integration with Citrix Provisioning and Citrix Machine Creation Services
- Cross-Platform Support
- App Layering Communication Flow
- Availability, Backup, and Recovery – including User Layers
Enterprise Layer Manager (ELM) uses several types of layers:
- Operating System Layer
- Platform Layer
- Application Layer
- Image Template
- User Layer
The master versions of all Layers are stored inside the Enterprise Layer Manager virtual appliance.
Citrix Blog Post How to approach designing your app layering strategy describes in which layer to install an application.
Citrix CTX225952 4.x Layering Best Practices
Layer Report – lists all of the Layers and the information associated with the layers. See Rob Zylowski at Citrix Blog Post Citrix App Layering and reporting.
Operating System Layer
Operating System Layer is just the base OS (with patches) and VMware Tools. Other components are usually installed in Platform and Application Layers.
- If you install .NET Frameworks in the OS Layer, then you only need to run Windows Updates on the OS Layer. However, Office should always be installed in an Application Layer.
- Windows Store apps should be removed from the OS Layer, not other layers.
Platform and Application Layers are tied to the OS Layer – The remaining layers (Platform and Application) are created from an OS Layer. These layers are linked to one OS Layer, and can’t be used on any other OS Layer.
- If you upgrade the hypervisor tools in the OS Layer, then you might have to recreate the Platform Layer.
Only OS Layer captures changes to local groups and local apps – Any application that creates local users (e.g. XenApp 6.5) should be installed in the OS Layer. Platform Layer and Application Layers do not capture changes to local groups or local users.
Platform Layer
Platform Layer is the highest priority layer and should contain the following: (from CTX225997 Considerations When Creating a Platform Layer in Citrix App Layering 4.x)
- Citrix Virtual Delivery Agent, or VMware Horizon Agent.
- Citrix Provisioning Services Target Devices Software
- NVIDIA Drivers
- Join the Domain
- Citrix Receiver – for the Single Sign-on Component
- Citrix Workspace Environment Management Agent
- Imprivata
- Hypervisor Tools – if packaging or publishing to a different hypervisor than originally used to create the OS Layer.
SAM database changes (local users, local groups) are not captured in the Platform Layer. You might have to use group policy to create and populate local groups. For example, Citrix Virtual Delivery Agent creates local users adds domain users to local groups. See Direct Access Users Group Missing All Layers at Citrix Discussions.
- Domain Join in Platform Layer does not capture adding Domain Admins to local Administrators group and Domain Users in the local Users group. Use Group Policy Restricted Groups or Group Policy Preferences Local Users and Groups to add these Domain Groups to the Local Groups.
- Here are some additional settings in a Group Policy at Computer Configuration > Preferences folder > Control Panel Settings Right-click the Local Users and Groups node, point to New, and select Local Group. More info at CTX259057 VDAs are not registering using a published image – Use GPO/GPP to add the proper accounts and services.
- Action – Update – Group – Remote Desktop Users – Add Members “DOMAIN\Domain Users”
- Action – Update – Group – Remote Desktop Users – Add Members “NT AUTHORITY\Authenticated Users”
- Action – Update – Group – Performance Log Users – Add Members “NT Service\CitrixTelemetryService”
- Action – Update – Group – Performance Monitor Users – Add Members “NT Service\BrokerAgent”
- Action – Update – Group – Administrators – Add Members DOMAIN\Your_Citrix_Admins_Group
- Action – Create – Group – Anonymous
- Action – Create – Group – Direct Access Users – Add Members DOMAIN\Your_User_Group
Windows 10/11 apps should be removed from the OS Layer, not from the Platform Layer.
An Image Template (the composed machine that is published to the hypervisor) can contain only one Platform Layer. If you are creating a Platform Layer for Citrix Provisioning Services, then that one Platform Layer should include both the Citrix VDA and the Citrix PvS Target Device Software.
Application Layers
Application Layers contain anything not in the OS Layer or Platform Layer, including the following:
- Applications
- Antivirus
- Print Drivers
- SCCM Client
Per-user settings (profile changes) are not captured in an Application Layer.
When creating a Layered Machine, there are two methods of merging the Application Layers:
- Pre-boot – ELM merges the App Layers with the OS Layer and Platform Layer to create a single monolithic disk file. This method provides the greatest application compatibility. Use this method for Apps with boot time services or drivers.
- Elastic – When the user logs into a Layered Machine, a service looks in a file share for any Elastic Layers assigned to the user, and merges (mounts) them as the user logs in. Different users can have different Elastic Layers, even on multi-user Remote Desktop Session Host (XenApp) machines. However, Elastic Layering doesn’t work for apps that need boot-time services/drivers.
A single App Layer can be merged using either of these methods. If the App Layer doesn’t work Elastically, then you can mount it Pre-boot (Image Template) instead. There is no need to create separate App Layers for each mounting method.
Elastic App Layers are stored in a SMB file share. You can use any desired method to provide High Availability for this file share, including: Scale Out File Server, DFS Namespace/Replication, etc.
FSLogix creates local groups every time the service restarts, thus it works when installed inside an Application Layer.
Image Template
Image Template contains one OS Layer, one Platform Layer, and zero or more App Layers. The App Layers assigned in the Image Template are merged pre-boot.
You then Publish the Image Template to your hosting platform.
- For MCS, the Template is pushed to a hypervisor (e.g. vSphere) virtual machine, which becomes the master image for an MCS Catalog.
- For PvS, ELM creates a VHD file, and pushes it to a PvS vDisk Store, so you can assign it to Target Devices.
For Elastic Layers, you must enable Elastic Layers in the Image Template.
User Layers
User Layers allow users to install their own applications. In ELM 4.14 and newer, User Layers are fully supported.
User Layers require additional consideration for backup, replication, and recovery.
User Layers are tied to OS Layer – From Gunther Anderson: “Like App and Platform Layers, User Layer disks are tied to the OS layer they were originally built from. If you have a user login to images from two different OS layers, you will see the User Layer disks in two different directories on the share, one for each OS layer. The image itself knows what OS layer it was built from, and the ULayer service uses that information.”
- If you want profile portability, store the profile outside of the User Layer by implementing Citrix Profile Management.
The default size for User Layers is 10 GB. You can change this size by setting HKLM\Software\Unidesk\Ulayer\DefaultUserLayerSizeInGb on the managed machines. Source = Understanding Elastic Layering > Scaling (tab) > User Layer Size.
Layering Tips
From Citrix Blog Post 5 Tips for Packaging Your Apps with Citrix App Layering:
- .NET Frameworks go in the OS Layer
- Store apps are removed from the OS Layer.
- Keep the layer as clean and as small as possible
- A packaging machine will not be part of your domain
- Delete any installers from the desktop, delete any temp directories, and empty the recycling bin
- If Windows Updates, delete the contents of C:\Windows\SoftwareDistribution\Download
- Underlying applications should be layered first, and then selected as prerequisite layers when you go to create a layer for the subsequent application
- Use Application Layer Recipes
- Turn off the application’s auto-updater
- For antivirus, follow the manufacturer’s steps to “generalize” or remove any unique client identifiers
- Handle application licensing – rearm, activation, etc.
- Run
ngen.exe update
Also see Citrix CTX225952 4.x Layering Best Practices:
- Operating System Layer:
- Application Layers are tied to the Operating System Layer.
- ELM automatically upgrades OS Layer drivers. However, OS Layer Scripts should be updated reinstalling the Machine Tools.
- .NET should be in the OS Layer.
- OS Layer is lowest priority.
- Patch OS by creating an OS Layer Version.
- When patching, ensure Windows is activated.
- VMware Tools goes in the OS Layer. Update it too.
- Windows Store apps should be removed from the OS Layer.
- Application Layers:
- Per-user profile settings are not captured.
- Local users and local groups are not captured. Use Group Policy Restricted Groups instead.
- A single utility layer can include Java, Flash, Adobe Reader.
- Turn off application automatic updates.
- If domain membership required for an app installation, join domain, install app, remove from domain.
- Antivirus can go in OS Layer or App Layer.
- Printer drivers can be layered – but not elastically
- Use Layer Recipes.
- All Office apps needed by a machine/user should be combined into a single Office Layer
- Office cannot be elastically layered
- When patching Office, update the OS Layer first.
- Max 50 layers per desktop.
Operating System Preparation
- See Citrix CTX225952 4.x Layering Best Practices
- Windows Server 2019 – Windows Server 2019 is supported in App Layering 1905 and newer
- Office 2019 – Office 2019 is supported in App Layering 1905 and newer
- Windows 11 is supported in App Layering version 2112 and later
- Windows 10
- Windows 11 22H2 and Windows 10 22H2 are supported in App Layering 2211 and newer.
- Windows 11 is supported in App Layering 2112 and newer.
- Windows 10 version 21H2 is supported in App Layering 2110 and newer.
- Windows 10 version 21H1 is supported in App Layering 2107 and newer.
- Windows 10 version 20H2 is supported in App Layering 2011 and newer.
- Windows 10 version 2004 is supported in App Layering 2008 and newer.
- Windows 10 version 1909 is supported in App Layering 2001 and newer.
- Create a virtual machine.
- If vSphere:
- Make sure your OS Layer creation machine has a NIC of type VMXNET 3.
- Paravirtual SCSI controllers are supported in App Layering 2001 and newer.
- On the VM Options tab, expand Boot Options, and make sure the Firmware is BIOS, not EFI.
- Make sure your OS Layer creation machine has a NIC of type VMXNET 3.
- EFI:
- App Layering 2003 and newer has a ImportOsLayer.ps1 script that can import an EFI machine.
- Connectors with Compositing Engine enabled support EFI.
- Older versions of App Layering cannot import an EFI OS Layer.
- vSphere 6.7 defaults to EFI for new VMs.
- Install an operating system (Windows 11, Windows 10, or Windows 2022/2019/2016), and patch it.
- If you in-place upgrade Windows 10 to a newer version, you might have to use diskpart to delete the Recovery Partition. See CTX226407 App Layering: Windows 10 upgrade may result in new Recovery Volume partition.
- CTX255870 Windows 10 v2004 – Citrix Known Issues has a couple issues related to Citrix App Layering.
- Install VMware Tools.
- DHCP – Make sure the NIC is set to DHCP.
- Workgroup – Don’t join the template machine to the domain. Leave it in a workgroup.
- RDSH – For RDSH machines, Citrix recommends installing RDSH in the OS Layer instead of the Platform Layer.
- Remote Desktop – Enable remote connections (Remote Desktop).
- Install Windows Updates.
- Disable Automatic Updates on the template machine. You can use layers to install updates. An easy method to disable it is in Group Policy (gpedit.msc) at Computer Configuration | Policies | Administrative Templates | Windows Components | Windows Update | Manage End User Experience | Configure Automatic Updates. Disable the setting.
- To stop Windows from performing maintenance and consuming 100% CPU, set the following registry value: (source = Win 10 Image – CPU Utilization 100% non-stop at Citrix Discussions):
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance
MaintenanceDisabled
(REG_DWORD) = 1
- If Citrix Provisioning, George Spiers says IPv6 should be disabled.
- Go to the downloaded App Layering 2403 files, right-click the citrix_app_layering_os_machine_tools_24.3.0.exe file, and click Run as administrator.
- Click Yes to extract the files.
- If you look on the taskbar, you might see an open program called Set KMS Version.
- Click Use KMS.
- Click Close when prompted a reboot is needed.
- Then close the window.
- If Set KMS Version did not run automatically, then manually run C:\Windows\Setup\scripts\SetKMSVersion.hta as administrator (elevated).
- Shift right-click the file to copy its full path.
- Open command prompt as administrator, paste the path, and run it from there.
- Click Use KMS.
- This adds the file runipkato.cmd to C:\Windows\Setup\scripts\kmsdir, which ELM will run when it publishes the image. The script installs the KMS Client key and activates it.
- Shift right-click the file to copy its full path.
- If you have run KMS Setup multiple times (usually due to Machine Tools upgrades), check the registry for duplicates and remove the duplicates.
- In regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0. You should see kmssetup.cmd.
- If there are other registry keys named 1 or higher, check them for kmssetup.cmd. If true, then delete the duplicate keys so that only 0 remains.
- See CTX238316 After upgrading the OS Machine Tools, kmssetup.cmd runs twice at startup for more details.
- In regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0. You should see kmssetup.cmd.
- If this is a Windows 10 or Windows 11 virtual machine, and if you want to remove Store apps, remove them from the OS Layer instead of the Platform Layer.
- In App Layering 4.11 and newer, Store apps are supported, and it is no longer necessary to remove them.
- App Layering 4.7 and newer has a script at C:\Windows\Setup\Scripts\RemoveStoreApps.cmd that can remove the store apps. Note: this script removes Calculator, so you’ll probably want to find a replacement Calculator.
- Citrix Optimizer can remove Store apps.
- The Citrix Optimizer community marketplace at https://raw.githubusercontent.com/ryancbutler/Citrix_Optimizer_Community_Template_Marketplace/master/communitymarketplace.xml also has an App Layering Supplement.
- Run setup_x64.exe from C:\Windows\Setup\scripts. Make sure you run it elevated.
- In the Welcome to the InstallShield Wizard for the Citrix App Layering Image Preparation Utility 23.12.0.4 page, click Next.
- In the Specify your answer file page, click Next.
- In the InstallShield Wizard Completed page, click Finish.
- CTP George Spiers Citrix App Layering Preparation Script: runs a number of tasks to clean out temporary folders, clear out Event Log entries, remove ghost devices from Device Manager, etc.
- Run the ImportOsLayer.ps1 script to import your new OS Layer to ELM. Newer versions of ELM only support the ImportOsLayer.ps1 method of creating an OS Layer.
vSphere Connector
ELM uses Connectors to communicate to push images and layers to various hypervisors.
- In App Layering 2202 and newer, you can use the new HTML5 interface to create Connectors.
- In ELM 4.11 and newer, in the Internet Explorer Silverlight console, you can create or edit connectors at System > Connectors. This page also shows Connector Cache information. Caching improves performance of the connectors.
- In ELM 4.11 and newer, in the Internet Explorer Silverlight console, you can create or edit connectors at System > Connectors. This page also shows Connector Cache information. Caching improves performance of the connectors.
- See System requirements at Citrix Docs for the list of supported hypervisors and brokers.
- To create the vSphere connector, in the Choose a Connector Type window, select VMware vSphere.
- For configuration instructions for the other connectors, see Connector configurations at Citrix Docs.
- Click New.
- In App Layering older than version 2304, a new tab opens. Version 2304 and newer have a new interface for configuring the Connector.
- Give the Connector a name (e.g., vCenter name). The Connector specification includes specific storage, so the Connector name should indicate the storage name.
- Enter the vCenter FQDN and service account credentials.
- The vCenter permissions needed by the service account are detailed at vSphere Permissions at Citrix Docs.
- Click Check Credentials.
- Scroll down and use the drop downs to select where you want Packaging VMs and Published Templates to be created.
- The Packaging VMs and Published Templates will be created under the Virtual Machine Folder that you specify here.
- The Packaging VMs and Published Templates will be created under the Virtual Machine Folder that you specify here.
- If MCS, in the Virtual Machine Template (optional) field, search for a Template VM that will be copied to create the MCS master image. The Template VM needs CPU, Memory, and GPU settings, but no disks. See Required information for this Connector Configuration at Citrix Machine Creation Services for vSphere Connector Configuration at Citrix Docs.
- To ensure that the published images have the correct time zone, it may help to generate a new template for your Connector by having (or building) a Windows VM that has booted in the correct time zone. Shut it down, clone it, delete the attached disk from the clone, and convert that to a template for your Connector configuration in the Layering Management Console. More info at CTX230562 App Layering: Machine time on a published image is wrong at first boot.
- Packaging Cache Size in GB speeds up App Layer creation operations if you are creating multiple App Layers for the same OS/Platform combination. The size should be greater the size of the OS/Platform combinations.
- Offload Compositing – at the bottom of the connector, make sure Offload Compositing is enabled to speed up provisioning operations. In 2304 and newer, click Confirm and Complete.
- In older versions click Test.
- When the Test is successful, click Save.
- Then click Close.
- When the Test is successful, click Save.
Platform Layer
Create Packaging VM
- See Citrix CTX225952 4.x Layering Best Practices.
- See Citrix CTX225997 Considerations When Creating a Platform Layer in Citrix App Layering 4.x.
- Create your Hypervisor Connector before you create the Platform Layer. In the new HTML5 console in App Layering 2202 or newer, click Connectors on the left. Or in the Internet Explorer Silverlight console, go to System > Connectors to create a Connector.
- In the HTML5 console, click Layers on the left, switch to the Platform Layers tab on the right, and then click Create Platform Layer.
- In the older Internet Explorer Silverlight console, in the Layers tab, Platform Layers sub-tab, right-click in the grey area, and click Create Platform Layer.
- In the older Internet Explorer Silverlight console, in the Layers tab, Platform Layers sub-tab, right-click in the grey area, and click Create Platform Layer.
- In the Layer Details page, give the Platform Layer a name and version. Note: Platform Layers are linked to OS Layers, so it’s best to indicate which OS Layer this Platform Layer is based on. You can’t use a Platform Layer created on one OS Layer on a different OS Layer.
- Enter a version number.
- Specify a Max Layer Size. Note: the packaging machine is thick provisioned using the size specified here, plus the size of the OS Layer.
- In the HTML5 interface, scroll down.
- In the Silverlight interface, click Next (down button).
- In the Silverlight interface, click Next (down button).
- In the OS Layer page, select the OS Layer (and layer version) this Platform Layer will be based on.
- In the HTML5 interface, scroll down.
- In the Silverlight interface, click the next button (down arrow).
- In the Silverlight interface, click the next button (down arrow).
- In the HTML5 interface, change the selection to This platform layer will be used for publishing Layered Images.
- Use the drop downs to select the Hypervisor, Provisioning Service, and Connection Broker. These can be changed later.
- Select an existing vSphere connector.
- For Packaging Disk Filename, enter a name for the .vmdk disk that will be created in vSphere. Click Confirm and Complete.
- Then click Create Layer.
- In the Internet Explorer Silverlight interface, in the Connector page, if you already have a vSphere connector, select it, and click Next. If you don’t already have a vSphere connector, then click New to create one. Click the down arrow.
- In the Platform Types page, change the selection to This platform layer will be used for publishing Layered Images. The other selection is if you want to deploy the vSphere OS Layer on a different hypervisor (e.g. Azure).
- Use the drop downs to select the Hypervisor, Provisioning Method, and Connection Broker. These can be changed later. Click the down arrow.
- In the Packaging Disk page, enter a name for the .vmdk disk that will be created in vSphere. Click the down arrow.
- In the Icon Assignment page, select an icon, or upload a new one. Click the down arrow.
- In the Confirm and Complete page, click Create Layer.
- In the HTML5 interface, on the left is the Tasks node showing you the current progress. Click View Details.
- In the Silverlight interface, on the bottom of the screen, open the Tasks pane.
- Click the information icon to view what the task is doing.
- Eventually it will say Pending (Action Required), meaning it’s waiting for you to perform the packaging in vSphere.
Edit Packaging VM
- In vSphere Web Client, in the VMs and Templates view, expand the Layering folder, expand Packaging VMs, and click the new Packaging Machine.
- If you edit the VM’s hardware, and if Offload Compositing is enabled, then the Hard Disk is Thin Provisioned.
- If Offload Compositing is not enabled, then notice that the disk is Thick Provisioned.
- If Offload Compositing is not enabled, then notice that the disk is Thick Provisioned.
- Open the VM’s console and login to the machine.
- Join it to the domain. Only join the Platform Layer to the domain. OS Layer and App Layers must not be joined to the domain. You’re welcome to change the computer name.
- After joining the domain, move the computer object to your VDA OU so the GPO computer settings are applied to the Platform Layer.
- After joining the domain, move the computer object to your VDA OU so the GPO computer settings are applied to the Platform Layer.
- You can now install VDA software.
- VDA 2112 is supported with App Layering 2112 and newer.
- VDA 1912 LTSR is supported with App Layering 2001 and newer.
- VDA 1909 is supported with App Layering 1910 and newer.
- VDA 1906 is supported with App Layering 1907 and newer.
- VDA 1903 is supported with App Layering 1905 and newer.
- Feel free to reboot the Packaging VM.
- Rob Zylowski at Imprivata App Layers at Citrix Discussions recommends installing Imprivata in the same Platform Layer that contains the VDA.
- According to Direct Access Users Group Missing All Layers at Citrix Discussions, the Platform Layer does not capture or merge changes to local groups.
- Use Group Policy Restricted Groups or Group Policy Preferences Local Users and Groups to configure local groups.
- At Computer Configuration >Preferences folder >Control Panel Settings, right-click the Local Users and Groups node, point to New, and select Local Group. More info at CTX259057 VDAs are not registering using a published image – Use GPO/GPP to add the proper accounts and services.
- Action – Update – Group – Users – Add Members: “DOMAIN\Domain Users”
- Action – Update – Group – Administrators – Add Members: “DOMAIN\Your_Citrix_Admins_Group”, “DOMAIN\Domain Admins”
- Action – Update – Group – Remote Desktop Users – Add Members: “NT AUTHORITY\Authenticated Users”
- Action – Update – Group – Performance Log Users – Add Members: “NT Service\CitrixTelemetryService”
- Action – Update – Group – Performance Monitor Users – Add Members: “NT Service\BrokerAgent”
- Action – Create – Group – Anonymous
- Action – Create – Group – Direct Access Users – Add Members: “DOMAIN\Your_RDP_Allowed_User_Group”
- Use Group Policy Restricted Groups or Group Policy Preferences Local Users and Groups to configure local groups.
- If Citrix Provisioning:
- Install the Citrix Provisioning Target Device Software in the Platform Layer. The ELM Templates only allow one Platform Layer per template, so you’d need to install both VDA and Provisioning Services Target Device components in a single Platform Layer.
- Rearm KMS licensing (slmgr /rearm). MCS does this automatically during Image Prep.
- Install the Citrix Provisioning Target Device Software in the Platform Layer. The ELM Templates only allow one Platform Layer per template, so you’d need to install both VDA and Provisioning Services Target Device components in a single Platform Layer.
- From Citrix CTX225997 Considerations When Creating a Platform Layer in Citrix App Layering 4.x): Additional software to install in the Platform Layer:
- NVIDIA Drivers
- Join the Domain – after joining, login as network account, then login as local account, and delete the profile of the network account.
- Citrix Workspace App – for the Single Sign-on Component
- Citrix Workspace Environment Management Agent
- Hypervisor Tools – if packaging or publishing to a different hypervisor than the one originally used to create the OS Layer.
- Windows 10/11 apps should be removed from the OS Layer, not from the Platform Layer.
- CTX226984 App Layering/Unidesk: The list of Windows Updates is usually wrong in app/platform layers and published images/desktops.
- When done installing components, finalize the layer:
- CTP George Spiers Citrix App Layering Preparation Script: runs a number of tasks to clean out temporary folders, clear out Event Log entries, remove ghost devices from Device Manager, etc.
- Double-click the Shutdown for Finalize icon on the desktop. If it finds issues, it will tell you what to do (e.g. reboot needed).
- If it tells you that you need to run ngen, then run the following commands:
"c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" update "c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe" update
- Otherwise, it will shut down the VM.
- If Offload Compositing is enabled in your Connector, then the Packaging VM will reboot into Windows PE and automatically run the CompositingEngine.
- ELM will automatically transfer the files from the Compositing Engine. You don’t have to click Finalize.
- If Compositing Engine is not enabled in your Connector:
- Back in the ELM Internet Explorer Silverlight Console, in Layers > Platform Layers, right-click the Editing layer, and click Finalize.
- In the Confirm and Complete page, click Finalize.
- You can click the information icon next to the running task to see what it’s doing.
- Back in the ELM Internet Explorer Silverlight Console, in Layers > Platform Layers, right-click the Editing layer, and click Finalize.
- Eventually the icon will say Deployable.
- In the HTML5 interface, the tabs show you details on the layer.
- In the Internet Explorer Silverlight interface, you can click the information icon on the Platform Layer to view its details.
- In the Internet Explorer Silverlight interface, you can click the information icon on the Platform Layer to view its details.
Next Steps
Update OS or Platform Layers
- In the HTML5 Interface, select a layer, switch to the Version Information tab, and click Add Version.
- In the Silverlight interface, right-click an OS Layer or a Platform Layer, and click Add Version.
- In the Silverlight interface, right-click an OS Layer or a Platform Layer, and click Add Version.
- In the Version Details page, select a Base Version that you want to update. In the New Version field, enter a new version. In HTML5 Interface, scroll down. In Silverlight interface, click Next.
- In the OS Layer page, select an OS Layer version, and scroll down or click Next.
- In the HTML5 Interface, in the Platform Types section, most of this should already be filled in. Choose your Connector Configuration and then click Confirm and Complete.
- In the Internet Explorer Silverlight interface, in the Connector page, select a Connector, and click Next.
- In the Platform Types page, click Next.
- In the Packaging Disk page, click Next.
- In the Confirm and Complete page, click Add Version.
- The Tasks page and Task Details shows the current progress and will eventually say Action Required.
- When the Packaging Machine is deployed, you can connect to its console and perform any desired updates.
- If you in-place upgrade Windows 10 to a newer version, you might have to use diskpart to delete the Recovery Partition. See CTX226407 App Layering: Windows 10 upgrade may result in new Recovery Volume partition.
- When done installing updates, finalize the layer:
- George Spiers Citrix App Layering Preparation Script: runs a number of tasks to clean out temporary folders, clear out Event Log entries, remove ghost devices from Device Manager, etc.
- Double-click the Shutdown for Finalize icon on the desktop. If it finds issues, it will tell you what to do (e.g. reboot needed). Otherwise, it will shut down the VM.
- If Offload Compositing engine is not enabled in your Connector:
- When done updating the Packaging Machine, right-click the Layer that is marked as Editing, and click Finalize.
- In the Confirm and Complete page, click Finalize.
- When done updating the Packaging Machine, right-click the Layer that is marked as Editing, and click Finalize.
- View the task details to see the current progress.
- To confirm that you have a new version, the layer’s Version Information tab shows the new version. Or in the Silverlight interface move your mouse over the layer icon, and click the information icon. The available versions are shown.
- There are two methods of assigning a new version: one image at a time, or multiple images.
- To edit one image:
- Go to the Images tab.
- Select an Image, and click Edit Template.
- Scroll down or click the OS Layer or Platform Layer page.
- Click the plus arrow next to a Layer and select the new version. Then complete the wizard.
- To update multiple images:
- In HTML5, select the Layer, switch to the Version Information tab, select a version, and click Update Assignments.
- In Silverlight, on the Layers tab, right-click the updated layer, and click Update Assignments.
- In the Select Version page, select the version you want to assign, and click Next.
- In Silverlight, on the Layers tab, right-click the updated layer, and click Update Assignments.
- In the Image Template Assignment page, select the templates you want to update, and scroll down or click Next.
- Click Confirm and Complete, or in the Confirm and Complete page, click Update Assignments.
- In HTML5, select the Layer, switch to the Version Information tab, select a version, and click Update Assignments.
- Once an image has a new version assigned, go to the Images tab, and republish the image.
Hi Carl, can an OS layer that was built with Win10 OS be ‘upgraded’ to windows 11 or will a new os layer be required and therefore a rebuild of all apps/platform layers in order to move to windows 11.
I think you can do an in-place OS upgrade, but you might have to redo the Platform Layer.
Kind of new here, where will the new VMware VMTools be installed.
We need to install vmtools v12.1.0 to mitigate security vulnerabilities in prior versions..
OS Tools
Hello Carl,
Hope you can provide me some insight for the issue that I am facing with App Layering in Azure with Deploying VM in Azure. I have applayering set up in Azure and also I have successfully created layers for OS / Platform and app. Applayering can also deploy the VM based on the applayering image. The issue is when VM comes up in Azure it get stuck at basic settings Home Country /Region / App Language and Keyboard layout. I can not pass that screen as no access to VM Console in Azure. I have used win10/Win2019 and Win11 multiuser all has same issue.
Similar issue describe in article below.
https://www.reddit.com/r/AZURE/comments/ggjjao/unable_to_rdp_after_capturing_the_vm/
Hoping to get some thoughts on the issue.
Thank you for your help.
Bhavin
Hey Carl, I didn’t see anything listed on your site about this and was wondering if you might add it in the event that someone else might find it helpful. If you want to take an existing Template created with BIOS boot and make it UEFI in vSphere you will need to do the following.
1. In vSphere create a new VM that will be the Template and make sure its boot is set to EFI.
2. Create a new Connector in Citrix App Layering connector for vSphere Connector point it at the template you created before and enabled offload Compositing
3. Create a new Connector in Citrix App Layering connector for Citrix Provisioning Connector and enable Offload Compositing and select the vSphere connector created above.
4. Create a New version of the OS/Platform Layer with the vSphere Connector (Not 100% certain this is required)
5. Update the Template to use the new OS/Platform Layer, and Citrix Provisioning Connector
6. Publish Template
Dear Carl, You are advising “Windows Store apps should be removed from the OS Layer, not other layers”. Then How I can use Calculator, Sticky notes etc apps? Is it mandatory to remove them? I want these applications to be available for users
I usually replace them with the “old” versions. Google search “old calculator” to find one.
Hi Carl, i saw that the link to CTX226407 doesn’t work any more, has it moved to another number?
dear Carl, Thanks for the clear explanation.
In vSphere, i cannot give the ELM-account permissions to the full data-center, only to the cluster containing the used ESX host. And it looks like ELM doesn’t like that.
Do you know an elegant way to overcome this or should i just define a separate data center?
If the platform layer falls off the domain what issues can arise from that? Is it best practices to make sure the platform layer is on the domain?
Dear Carl Stalhood, I have a problem when I assignments app for OS, it’s requirement user member of domain admin, when I am using user member of domain user there aren’t see app have assigned, I’m looking forward to your view about this case
Hi,
We need to integrate a new application but this application need specific fonts.
We are not sure on which layer (app, platform or OS) we should install them.
Do you have any hints ?
Thanks
Here’s a similar thread – https://discussions.citrix.com/topic/405496-in-which-layer-must-fonts-be-applied/
Hello Carl,
I do not sure that I can create Windows 2008R2 for OS Layer on ELM version 2001 or not?
I can create OS Layer and Platform with Windows 2008R2 but failed command error when I have run finalize to shutdown at App Layer stage
Docs says 2008 R2 is supported as a OS Layer. https://docs.citrix.com/en-us/citrix-app-layering/4/system-requirements.html
Have you tried other OS versions? Maybe it’s a different problem.
I think i found my answer to previous question in a Citrix doc – any more info would be helpful though
“You cannot assign elastic layers to users on desktops created using Citrix Virtual Apps and Desktops. Nor, can you assign a Citrix virtual app as an elastic layer. Elastic layers are a feature of App Layering, and you can only assign a layered app to users who log into a published layered image.”
I have just installed app layering elm, with os layer, platform layer, and an app layer with fire fox just for testing.
It’s connected to vmware and is fine. I understand I can now use this as a template for mcs or use as a v disk in pvs (which we currently use).
My question is can i attach an elastic layer to my standard gold image created in the traditional pvs way.
Or do I have to attach it to a newly created image built up of os layer, and platform layer.
Elastic Layers can only be used with ELM-published images. Other non-Citrix products can be added to existing images but Citrix cannot.
I have an applayering environment and I occasionally have a server come up with a KMS error. “Activate Windows”
Seems completely random and annoying.
Anyone have this issue and know where I can start looking?
Hi Carl, For OS Layering preparing is it a must to set DHCP? My servers are not using DHCP and therefore i believe my Platform layering is failing due to the DHCP address not being assigned when its processing the layering image.
Non-persistent usually requires DHCP. You can configure DHCP Reservations to simulate static IPs.
Hi Carl,
The new ELM 1911 supports EFI, but when i am testing with OS Layer import, it fails.
Does ELM really supports EFI firmware as stated in the what’s new?/?
I think it supports EFI when pushing the image by copying a template, but import of OS probably still must be BIOS.
When updating the OS layer say from Windows 10 1803 to 1903, should the Platform layer be updated as well? Either adding a version to the Platform layer or creating a new Platform layer so that the 1903 version of the OS layer is used?
Another option is to rebuild the Platform Layer.
Carl, what do you recommend when it comes to upgrade to latest supported Windows 10 version? create new OS layer or upgrade current one adding a new version? thank you.
Since your other layers are tied to the OS Layer, you’ll probably have to in-place upgrade the OS Layer. The one exception is Elastic Layers.
Carl,
Do plan on anything for Hyper-V and generation 2 setup with Offload compositing feature?
It’s not very clear how or if I can apply it to my current environment running on Hyper-V 2012 R2 with Windows 2016 servers streamed from PVS 7.15CU3 and running 7.15 CU3 VDA
Thanks
In ELM 1910, if you edit the Connector for Hyper-V, there’s a checkbox to enable the offload compositing engine. Otherwise, ELM should function as it always has.
Note: OS Layer cannot be Gen 2 machine, but you can convert it to Gen 2 when ELM pushes the image.
Carl…..Your statement: “but you can convert it to Gen 2 when ELM pushes the image”….where is that setting ? I think we are missing it somewhere.
Carl..also..we are trying to do this within Azure, using the Azure connector. Is this still possible ? We do not see this option.
Hi Carl, Remote sign in from Citrix is not accepting for Win 2016 servers, I even gave the local and remote desktop user group permissions. There are no Group Policy’s in place.
Message: “To sign in remotely, you need the right to sign in through Remote Desktop Services. By default, members of the Administrators group have this right, or if the right has been removed from the Administrators group, you need to be granted this right manually.”
Could be a RDS licensing problem. Check Event Viewer on that machine.
If VDA is installed, then you’ll need to add users to the local Direct Access Users group.
I could not find local Direct Access Users group on VDA installed machine in the platform layer.
should I need to create a VDA group policy object?
App Layering does not capture changes to local groups so you’ll have to recreate the group.
Thanks for the response Carl, Following group I was not able to create but other groups I created
Whenever I try to create below 2 groups Microsoft Management Console stops working.
1. Action – Update – Group – Performance Log Users – Add Members “NT Service\CitrixTelemetryService”
2. Action – Update – Group – Performance Monitor Users – Add Members “NT Service\BrokerAgent”
After changing action to “Create”, “Direct Access Users Group” name is not showing in Action sorting
3. Action – Create – Group – Direct Access Users – Add Members DOMAIN\Your_User_Group
Hi Carl. Thanks for the amazing articles that have helped most of us when dealing with those technologies and products. My question is regarding the user layers and the search-indexing regarding the outlook cached profiles. Have you found a workaround on this, because it seems that the indexes are not captured in the user’s layer and gets rebuild each time they login. Have you faced anything similar? AppLayer is 4.15 , office 2016 patched in windows 10 1803.
Hi Carl,
Thanks for this wonderful article.
I have created OS layer for Win server 2016 (Hyper-V based). When trying to create platform layer named ‘WINSRV2016PFL’ from this OS layer I am getting error ‘Could not find file “WINSRV2016PFL-2019-08-06_17-40-02.172″‘
Do you know what might be wrong?
I was curios as I am just getting started with App layering using vSphere. Why is step 6a needed?
If vSphere: Make sure your OS Layer creation machine has a SCSI controller 0 of type LSI Logic SAS. VMware Paravirtual will not work.
I did some searching but came up empty.
Thanks!
It might have been an older limitation that no longer applies.
“We do not support Paravirtual SCSI controllers and do not have any current plans to do so.” https://discussions.citrix.com/topic/404368-scsi-controller-vmware-paravirtual-not-switching-to-lsi-logic-sas/?source=email#comment-2047432
Thanks for the reply! I don’t think I was clear, though. I was wondering why the need for a SCSI controller at all. It seems like there is an assumption that one is needed.
The disks are attached to the SCSI controller.
Ah, I understand. Sorry. When I was walking through the steps the VM I was creating did not have a SCSI controller listed initially. I did add it and saw that the disks were connected that way. I assumed it was using something else by default since I didn’t see a SCSI controller listed, not sure why it was not listed. I remember looking through the list a couple times wondering if I should just add it. Either way, I will make sure it is there in the future and sorry my confusion.
Many VMware people change the SCSI controller to Paravirtual. I was trying to say that you should leave the default controller and not change it to Paravirtual.
Hi Carl,
May I make one suggestion to add to your documentation for the OS Layer Preparation? Enable RDP connections so that it is embedded in the OS Layer. Its only for the 2nd time over the course of two years that I’ve needed to create a Platform Layer for Azure for a DR scenario and the only access you get is via RDP. Maybe it was because it was a Monday, but I kept playing with Network Security Groups and firewall rules to try and get “Connect” to work to my Platform Layer VM in Azure – only to eventually figure out RDP hadn’t been enabled in the OS Layer. Trick for young players :-P.
Done. Thanks for the suggestion.
Hi Carl… I cannot thank you enough for your blog, it has been a huge help as we setup our Citrix Environment. I do have a silly question about ELM and VDA in that I don’t know which to pick. When creating the platform layer and installing the Citrix VDA, which option should I select? We are using Citrix MCS on a Citrix Hypervisor Platform. Would l choose the Create the Master Image option or Standalone (no MCS or Provisioning)?
Master Image. Layering just creates the Master Image. MCS works the way it always does.
I have an image template already created that is published to Nutanix. Now if I want to deploy this same image to Vmware, do I need to create a new platform layer and image template with the Vmware drivers added in?
Yes. That is the idea of Platform Layers. Although I think you need to be Premium Edition licensing to support multiple hypervisors.
I deployed this on multiple hypervisors BUT removing tools from OS layer and changing them let’s say from Xen to VMware (only vmware fails) ends up with not being able to re-import image to ELM. New OS layer for each hypervisor?
Hi Carl, were seeing an issue with our new windows 10 1809 os layer and windows store apps. We also have the latest app layering tools on the image, were running 19.3.0.63. The apps like calculator and sticky notes are there and work fine when we sign in as our local admin account that installed the os. However if we sign in as any other account the apps disappear. Our image template is being published to pvs as well as straight to vmware. Were seeing this behavior on any vm created from this image template. How can we get windows store apps to show for any user that signs onto the vda?
Did you run an optimizer that removes the store apps?
Carl, yes we ran the latest citrix optimization tool, however we unchecked some of the store apps we wanted to remain.
Hi Carl,
Just wondering – is there any need to “rejoin” a Platform Layer version to the domain? Or is it just a requirement on the initial creation?
Thanks,
Matt
Hi Carl,
Win 10 ver. 1809 is now supported (since 1902).
https://docs.citrix.com/en-us/citrix-app-layering/4/whats-new/19-2.html
Thanks
Thanks for pointing this out. I just updated the text.
HI Carl
have you any specific comments/tips around App Layering using MCS on Azure
we are having all sorts of issues from extremely slow image deployment (24 hrs approx.) to create catalog crashing at the making consolidated image phase
we are using the new MCS connector for Azure and that seems to be when the issues started
we also used to run some tweaks, etc between publishing the image and importing it into MCS which we can no longer do
any clues who be gratefully received
regards
Jane
Hi Carl, last year i blogged about using app layers on different OS layers. This still works with the latest 1902 version. I even created a Powershell script to handle multiple exported layers and adjust them for the other OS layer. I submitted a feature request at Citrix but a year later they didn’t change it even when it is technically possible.
When you use Windows 10 as your OS layer and Microsoft releases a newer version of Windows 10 you don’t want to update your OS layer because it would be an in-place upgrade with a lot of junk. You rather would have a clean installed OS layer with the latest Windows 10 release. The problem with this approach is that you have to re-create all of your app layers because your OS layer ID changed. It’s still Windows 10 but a newer version with a new OS layer ID.
As mentioned in my blog you can export your app layers and adjust the OS layer ID.
Link to blog: https://mickderksen.wordpress.com/2018/06/06/assign-app-layers-to-a-different-os-layer-with-citrix-app-layering-4-11/
A faster approach would be to remove the older OS layer and adjust the ID of the newer OS layer to the old ID. But to do this you have to remove the OS layer(s), Platform layer(s) and app layers AND templates. Too bad you cannot export the templates.
Maybe this is worth mentioning (using app layers on different OS) in your blog? I’m using the same app layers on Windows 10 and Server 2016. Works like a charm. One thing to keep in mind; when updating an app layer you should update the orignal app layer on the original created OS.
This link, reference here is invaluable, personally. I have utilized this and it saved me much grief in having to redo any OS layer and so on, pertaining to the App Layers and their association given that Citrix App Layering is derived with the App layer associated specifically to the OS layer when created. Excellent resource. This ability, obviously modified for end use through ELM would very much make things easier.
I have played a little further and been able to create a script to copy the App layers into my finalized Disk at logon,for each and every user, eliminating Elastic layering ( per its use through ELM ) and hence any App Layer is now not OS dependent and or bound. But, to the context of this Link in the essence of a new OS – it was and is an outstanding reference that works. It is appreciated.
Caution! If already using or intended for upgrading to Citrix App Layering 1901 – Make sure to replace the kmssetup.cmd in OS Layer with a previous version of the script after upgrading the Machine Tools! Otherwise your KMS Office Activation will not be triggered at startup!
This will happen because the following part of the script has been moved from line 240 to line 472 in App Layering 1901. But the script skips everything under line 461 because of GOTO END (line 456).
REM RUN ACTIVATE OFFICE
IF EXIST OfficeActivate.txt (
REM If this is after a REBIC we will check for OfficeStoreCopy_Done and remove it if it exists. Thsi will casue OfficeActivae.cmd to recopy the store files.
If EXIST IsREBIC.txt (
echo !date!-!time!-kmssetup.cmd:Restting office Activation following a REBIC>>kmssetup.log
CMD /C “c:\windows\setup\scripts\ResetOfficeDone.CMD”
)
echo !date!-!time!-kmssetup.cmd:calling OfficeActivate.cmd>>kmssetup.log
CMD /C “c:\windows\setup\scripts\OfficeActivate.CMD”
echo !date!-!time!-kmssetup.cmd:OfficeActivate.CMD Complete>>kmssetup.log
echo !date!-!time!-kmssetup.cmd:OfficeActivate.CMD has been run>OfficeActivate_Done
)
REM RUN NOREREG FOR OFFICE
IF NOT EXIST OfficeNoReReg_Done (
echo !date!-!time!-kmssetup.cmd:calling NoReReg.cmd>>kmssetup.log
CMD /C “c:\windows\setup\scripts\OfficeNoReReg.cmd”
echo !date!-!time!-kmssetup.cmd:OfficeNoReReg Complete>>kmssetup.log
echo !date!-!time!-kmssetup.cmd:OfficeNoReReg.CMD has been run>OfficeNoReReg_Done
)
This bug is not known or reported yet so please have a look at this and check your environment if you have any issues with Office Activation or permanent reconfiguration of Office Components when opening Office Programs in your Layered Image.
@Carl: Maybe you can add this to your knowledge base?
BR Jonas
FYI, a few of us have reported this bug to Citrix (as well as in the Citrix forum) and have already received an updated “private fix” version. In the meantime, the kmssetup.cmd from basically any of the previous builds does work.
Hi Carl.
I really appreciate this site!
But i wonder if you have tried to make a new version of the same OS(Server2016) but a different language. We originally installed with English. But the users uses Swedish. Works just fine to install Swedish language pack set it for all users.
But the problem is Windows Search in Outlook. When you press “From:”(but in swedish) in the advanced search category it adds the Swedish word and Windows Search don’t know how to use it. So to fix that i just thought to add OS with Swedish instead of English and then move the Apps to a new template with the new OS.
I have done a new Server2016 OS before but with the same language and that worked fine.
But maybe it is to much difference for it to work.
Any suggestions?
Historically when configuring a XenApp server the RDS role is installed and configured when you install the VDA. With App Layering it is suggested that we do not install the VDA until the Platform layer. When we create an app layer is states that we should only add the platform layer if we are making changes to the drivers or the hypervisor tools. The issue I am seeing now is that according to best practices for installing applications on a terminal server (and therefore Xenapp) you need to use the control panel “Install an application on a remote desktop” or the command line command of “change user /install”. Does this mean that we need to also attach the Platform layer when installing, or do we install the RDS role in that app layer, or maybe install it on the OS layer?
Interesting question. I am kind of new to app layering too and ran into this too.
Out of habbit I also trigger a change user /install – change user /execute when installing apps on TS. I know most .msi based apps take care of this automatically but I guess it doesn’t harm in case the installer would not be .msi based.
But, indeed, as you link an app layer to an OS layer that doesn’t have the RDS role installed yet, it doesn’t detect it as a TS thus the change user command triggers an error.
Is this taken care of by App Layering itself or does the RDS role needs to be installed in the OS layer anyway?
hey Carl thank you for you article, how I can assign new OS/App layer update to user desktop. thank you
Are you asking how to add a layer to an Image Template? Or are you asking how to assign an Elastic Layer to a user?
Hey Carl, thank you for you article. I have the same question, if a user already have a permanent desktop and i need to push a new update to their desktop how I can proceed.
Thank You
Does “permanent desktop” means full persistent desktop? If so, use SCCM or similar to push updates.
Or do you mean a Layered Image with User Layer? In that case, just publish a new version of your Layered Image like normal.
Carl,
I have deployed single sign-on on platform layer. But this will not work and always prompt users to logon each time. Do you know what might be causing this or maybe i m doing something wrong.
Any help will be appreciated
Thanks
Hi Carl
Thanks again for all the valuable articles on your site.
Was hoping you could help with ODBCs and environment variables. We have some apps that rely on these and wondered what best practice was.
We have ODBC requirement that uses Windows authentication but as the application layer is not on domain then can’t configure the system DSN properly. Would this be done in Platform layer using a valid domain account with access? Or should it be done in app layer but set to SQL authentication then complete wizard to create ODBC then change back to windows authentication after tested?
Another requirement we have is to add a domain account with permissions on a folder. I did this in platform layer and added domain account with permissions but this doesn’t see to carry over to any PVS targets created from this image
Would appreciate your thoughts.
Thanks
Can you configure these items using group policy?
Your DSNs are System DSN and not User DSN? DSNs are just registry keys. You can join the App Layer to the domain, make your changes, and then remove it from the domain.
That’s great. So joining app layer to domain then removing does not cause any additional issues?
I ran through odbc wizards and used SQL authentication to allow wizard to complete then modified configuration to change to Windows Authenticated so I am hoping that will do the trick without the need to join to domain
I had looked at using GPO to configure the ODBCs but wasn’t sure if that would use the correct SQL native client as application required the latest.
Another odd thing I am struggling with is that I created a folder in platform layer and granted a domain account permissions. However when publishing the image to PVS the user account that was added successfully in platform layer is missing. Not sure if a bug or if that would have to be done another way
Really appreciate the info
Thanks again
Hi, I’m currently facing the issue that we’re going to switch from McAfee AV to Defender with SCCM. Currently I get the SCCM Agent to work but the Defender service is disabled and nothing works to enable it. Currently talking about a new Image with only OS + Platform Layer + App Layer containing Defender + SCCM
Did you ever find a solution to this issue? We are seeing the same thing in regards to Defender.
Hi Carl,
i have an error in studio on every catalog “image preparation failed to rearm copy of windows installed…”
we using ELM 4.13, we checked the activation status on the VDA, all find.
i checked also the set kms step and all is done and working.
Have you ever seen this?
I usually turn off KMS rearm during image prep. In that case, you would manually rearm KMS on your image instead of letting MCS do it during ImagePrep.
Note that if you are using Citrix Cloud you cannot disable rearm via powershell SDK as you would against an on prem controller. Citrix Support are also unable to disable this in Citrix Cloud. Response from Citrix support from multiple tickets regarding this issue is that the warning is benign and can be ignored.
This is an issue that needs to be addressed in a future release, simply ignoring warning messages is not practical.
I am new to App Layering and setting up in home lab.
Environment: App Layering 4.13, ESXi6.5, OS Layer Server 2016, VDA and PVS 7.18
I can create an OS Layer using either Windows ISO manually or using AF3.8, then create a Platform layer with VDA and PVS, and then create a VDA(desktop) and launch using PVS without an issue.
When I create an App Layer using the same OS Layer, when the vm boots up in order to install the app, I get a Missing Clpsp.sys missing. C000000F
I have tried MANY times in many combinations ( no optimizations, uninstall Defender ) . What am I missing?
Thanks in advance for pointing me in the right direction.
If you post your question to the App Layering forum at Citrix Discussions, Citrix employees usually respond.
Thx Carl, I did get a response from a Citrix person. Work around for your readers was turning off cache on PVS connector. The other suggestion was to do a rescan of drivers with the following command;
cd \program files\Unidesk\Uniservice
uniservice -b
reboot
Thanks Carl, very helpful, still using this to finish off a POC.
Question: The target devices are showing a C drive of 10GB with 3 free, where is this set when my OS layer is 40 GB with 15 free and the Platform layer is 15GB with 12 free.
Regards,
J
Are Elastic Layers enabled? Or User Layers?
yes, user layers enabled
So the users only get to see their user layers as C in the target devices?
User layer set at default 10GB but without installing anything it is 75% usage already?
In the packaging machines, we are slowly running out of disk space, how can we expand the OS layer C drive?
How can i update my OS Layer Windows 10 1703 to Windows 10 1803
You should be able to just add a version to your OS Layer. Then rebuild your Platform Layer.
If I update the OS layer from 1703 to 1803 then the “OS Machine Tools” are gone too. And I had to run Citrix Optimizer again. Can I update the Platform layer or do I have to build a new one.
Hi Carl!
Thanks for the Article.
Was working on testing App Layering out creating a Demo but at # 16 and # 17 of this article After creating the Platform Layer from the VM i deployed (Not Joined to the domain, had APPL tool installed and shutdown) My Platform later OS created on Vsphere will not boot up stuck at windows logo. (Windows Server 2012 R2)
Do you have any idea what might be causing this? Or is there something i’m missing here?
Any help will be appreciated. Thanks
Hi Carl, do you install VMwareTools before importing the OS or afterwards into a new version?
I put it in the original OS VM that is imported to ELM. But you can always add it later to an OS Layer. Or put it in a Platform Layer.
👍
Yup thats exactly what I did too carl. Because when you create a new VM in vCenter, it doesnt have network, display drivers etc, it cant connect to network. if you want to remove unwanted apps or stop any services, you have to manually write each and every command in the posh console or batch script as you cant copy/paste in the vm and it cant connect to network. So, I installed vmware tools in the original base image, removed unwanted apps and then added software in the app layer. It worked great.
Hi Carl,
Thank you for your detailed document, this is very handy for my learning.
l need a help in importing the App layers to a new ELM machine which are created by different Appliance ( identical appliance in different DC). in new Appliance connection to SMB share is getting established successfully on the version selection screen it says no items available. could you please suggest me how to import the layer to new machine.
Thank you
Carl, Everytime I try to add a Citrix user (like CitrixTelemetryService) to the Local Groups GPO, the policy window crashes. Have you ever seen this?
Hi Carl,
At point 20. I think you could mention that this issue has now been fixed in versions 4.6+ of App Layering.
BTW I use your blog as reference at every deployment! you the man!
Thanks again Carl for this detailed doc.
During OS layer creation \ Import OS Layer \vMware connector
I am importing a VM from vcenter, I will not be using MCS for creating one (for OS layer machine or future VDAs) – I am using PVS.
Do I need to enter these details “Virtual machine Resources” before moving on to “select Virtual Machine” (to import) tab? – I’m unclear what these settings represent in my scenario
I cannot work out whether this settings will be used later to create a “Packaging Machine” for App Layering or something else.
I have a XenDesktop VDI environment, already built primarily on PVS and some MCS.
I am not looking for an OS layer with App Layering, I am perfectly happy with the current OS provisioning methods we have and our master image update and management solution.
What I want to achieve is decommission PVD and replace with App Layering (Elastic), so I can continue with pooled PVS VDIs without PVD.
-I understand a packaging machine is required in the OS layer – for running the setup and capturing the settings for the App.
-What I cannot get my head around is how I can connect App Layers to my existing VDIs in PVS and MCS without the need to represent them as OS layers.
-Are there tools/ agents/plugins to make this possible?
The drivers for Elastic Layering are added when the ELM publishes an image, which is based on OS Layer, Platform Layer, etc. It currently is not supported to use Elastic Layers with VMs not based on an ELM published image.
Carl – What about applications that require sybase? Does the DB get installed in APP layer?
Hi Carl, I used win10 pro iso with no updates on the OS. While I tried to install xendesktop 7.16 VDA, it says vda cant be installed in this OS, and it needs min 1607 or 1709 version. I am in platform layer now, installing windows updates and i know we shouldnt install windows updates in platform layer. Any idea how to get through this, other than deleting my platform layer and OS layer and recreating them again? Also, if i do it, i have to install 1607 or 1709 win updates and then start capturing OS layer and platform layer. any suggestion here ?