VMware Horizon 2106: Virtual Desktop Pools

Last Modified: Jul 17, 2021 @ 11:59 am

This article details Horizon pool configuration for Virtual Desktops. RDS Farms and pools are detailed in a separate article at https://www.carlstalhood.com/vmware-horizon-8-rds-farms-pools/.


This post applies to all VMware Horizon versions 2006 (8.0) and newer.

Change Log

Non-Persistent – Instant Clones

All editions of Horizon 2006 and newer include Instant Clones so there is no need to use Composer. Composer is deprecated in Horizon 2006. Composer was removed from Horizon 2012 (8.1) and newer.

Notes on Instant Clones:

  • The master VM snapshot is copied to every LUN containing instant clones. Composer does the same.
  • If you deploy 12+ VMs per host of the same pool, then “Parent” machines are created on each ESXi host for each datastore. These “parent” machines are powered on and consume CPU/Memory/Disk resources. If you have six hosts and three datastores containing instant clones, then Horizon creates 18 parent virtual machines. Composer does not need parent virtual machines.
    • For lower density, Horizon 2006 and newer support Smart Provisioning, which eliminates the need for “Parent” machines. See the Smart Provisioning YouTube video for an overview.
  • Persistent disks are not supported with Instant Clones.
    • An alternative is Microsoft FSLogix, or VMware App Volumes Writable Volumes
  • See Instant-Clone Desktop Pools at VMware Docs.
  • Also see VMware Technical White Paper VMware Horizon 7 Instant-Clone Desktops and RDSH Servers

Infrastructure Prep

  • Each desktop pool points to one vSphere cluster.
  • Ensure vSwitch has sufficient ports for the new virtual desktops.
    • Instant clones require static port binding with the elastic port allocation. Do not change the port binding to ephemeral.
  • Ensure the VLAN has enough DHCP addresses for the desktop pool.
  • KMS Licensing is required – MAK licensing is not supported
  • The virtual desktop pools will use the same hardware specs (e.g. vCPUs, memory size, network label, GPU) specified on the master virtual desktop. Adjust accordingly.
  • The master image should be in the same vSphere cluster where the instant clone virtual desktops will be created.
  • ESXi must be version 6 update 1 or newer
  • Master VM must be version hardware version 11 or newer
  • In Horizon Console, add Instant Clone Domain Accounts
  • In Horizon Console, enable View Storage Accelerator on your vCenter connection.
  • If you upgrade vCenter to 6.7 or later, then you must upgrade your ESXi hosts to 6.7 or later at the same time. Afterwards, take a new snapshot of the master image and perform a push operation. See Upgrade Instant-Clone Desktop Pools When You Upgrade vCenter Server to vSphere 6.7 or Later at VMware Docs.

Disk space

  • One or more LUNs (datastores) for storage of the virtual desktops.
  • By default, Replicas are copied to each LUN that contains virtual desktops.
    • It’s possible to place the Replica and the instant clones on separate LUNs. If you use a dedicated Replica LUN, then there is only one copy of the Replica no matter how many LUNs are used for storing virtual desktops.
    • Note: NFS VAAI requires the Replica to be copied to each virtual desktop LUN.
  • .vswp files – Plan for disk space for memory swap and graphics memory overhead. If the master virtual desktop has 4 GB of RAM configured and if none of its memory is reserved then each linked clone will have a 4 GB .vswp file.
    • To reduce the size of the .vswp files, edit each virtual desktop and reserve its memory. Whatever memory is reserved will be subtracted from the .vswp file size.
  • Instant Clone Delta disks – Delta disks start small whenever the virtual desktop boots and grow until the user logs off of the virtual desktop and it reboots.

Non-Persistent, Floating, Automatic, Instant Clone Desktop Pool

Master Image Preparation

Do the following on the master image that the virtual desktops will link to:

  1. Video Memory – shut down the master, Edit Settings (hardware) in vSphere client, expand Video card, and set video memory. More video memory means more client monitors. The maximum number of displays and maximum resolution of client monitors depends on the ESXi version, the Horizon version, and the Windows version with newest versions providing the greatest number of client monitors.
  2. DHCP – Make sure the master VM is configured for DHCP.
  3. Join domain – Join the master VM to the domain.
  4. Computer Group Policy – Make sure the Master VM is in the same OU as the Instant Clones so the Master VM will get the computer-level GPO settings. Run gpupdate on the master after moving the VM to the correct OU. New Instant Clones do not immediately refresh group policy so the group policy settings must already be applied to the master VM. See VMware 2150495 Computer-based Global Policy Objects (GPOs) that require a reboot to take effect are not applied on instant clones.
  5. KMS Licensing or Active Directory-Based Activation is required.
  6. Snapshot – Shut down the master image and take a new snapshot.

Floating Pool

Use Horizon Console to create an Instant Clone pool:

  1. Login to Horizon Console.
  2. On the left, under Inventory, click Desktops.
  3. On the right, if you select an existing pool, you can click Duplicate to copy the settings to a new pool.
  4. On the right, click Add.
  5. In the Type page, select Automated desktop pool.
  6. In the vCenter Server page, select Instant Clone, select a vCenter server, and click Next. Notice that Composer is no longer an option.
  7. In the User Assignment page, select Floating, and click Next.
  8. In the Storage Optimization page, if you want to use storage tiering, check the box for Select separate datastores for replica and OS disk. Click Next.
  9. In the Desktop Pool Identification page, do the following:
    1. Give the pool a unique ID, which is not shown to the users. Horizon creates a vCenter VM folder with the same name as the Pool ID.
    2. Enter a Display name, which is shown to the users.
    3.  If you intend to use Identity Manager (aka VMware Access), then leave Access group set to /. Otherwise, if you intend to delegate administration of this pool, then select an Access group that the delegated administrators have been assigned to.
  10. Click Next.
  11. In the Provisioning Settings page, do the following:
    • In Virtual Machine Naming, enter a Naming Pattern. You can use {n:fixed=3} to specify the location for incremented numerals in the machine names. Make sure the naming pattern does not conflict with any existing machines. Remember, the maximum computer name length is 15 characters.
      • Horizon 2103 (8.2) and newer let you Specify Names Manually instead of using a naming pattern.
    • In Desktop Pool Sizing, enter the maximum number of desktops to create. Ensure that the DHCP scope has enough addresses for the Max number of desktops specified here. If your desktop pool size exceeds a single VLAN, then you can create multiple pools and combine them into a Cloud Pod Global Entitlement.
    • Select Provision all machines up-front to create all of the machines now.
    • Or select Provision machines on demand, which tells Horizon to create the machines (up to the maximum) as users connect.
    • If you’re not creating all machines up-front, then specify the Number of spare (powered on) machines. As users connect, Horizon creates more machines to try to keep this number of spare machines running and waiting for a new connection.
  12. Click Next.
  13. In the vCenter Settings page, most of these are self-explanatory. Click Browse next to each option, and make your selection.

    • If the Parent VM (aka Master VM) is not showing up in the list, then check the box next to Show all parent VMs and click the … next to the VM to see the issue.
    • Instant Clones monitors/resolution – the number of monitors configured on the Master Image (snapshot) is displayed. If not correct, delete the snapshot, edit the master VM’s Hardware Settings, expand video card, make your desired changes, and take another snapshot.
    • Scroll down for more settings.
    • Datastores – select one or more datastores on which the virtual desktops will be placed.
    • If you selected to put Replica on a different datastore, then you’ll have another Browse button for Replica disk datastores.
    • When selecting Networks, you can use the Network from the parent image, or uncheck the box and select a different network.
  14. Click Next when done.
  15. In the Desktop Pool Settings page:
    1. You can select a Category Folder where the published icon will be placed on the client’s Start Menu and/or Desktop.

      1. Change the selection to Select a category folder from the folder list.
      2. You can type in a new category, or select an existing one.
      3. Then click Submit.
    2. In the Desktop Pool Settings page, Horizon Enterprise Edition lets you select a Session Type, which means you can optionally publish applications from virtual desktops.
    3. Change the selection for Logoff after disconnect to After, and specify a disconnect timer.

      • You can also use Group Policy to configure this. The GPO overrides the pool setting. Install the Horizon GPO Templates if you haven’t already. Edit a GPO that applies to the Horizon Agents. Find the Disconnect Session Time Limit (VDI) setting at VMware View Agent Configuration > Agent Configuration.
      • Horizon also has an Idle Time Until Disconnect (VDI) for virtual desktops. Note: RDSH idle timer is configured using Microsoft RDSH GPO settings, not Horizon GPO settings.
    4. You can allow users to restart their machines.
    5. If you choose Dedicated assignment instead of Floating assignment, there’s an option for Refresh OS disk after logoff. Leaving it set to Always is strongly recommended. The other options cause the delta disk to grow, and will cause data loss surprise for the users when you later push a new image. Instant Clones floating assignment pools always refresh on logoff.
    6. Reclaim VM disk space is also an option for Dedicated assignment pools. Floating assignment pools always refresh on logoff so there’s no need to reclaim disk space.
  16. Click Next.
  17. In the Remote Display Settings page:
    1. In 3D Renderer, there’s an option for NVIDIA GRID VGPU if you have GPUs installed.
    2. There’s an Allow Session Collaboration checkbox, which adds a VMware Horizon Collaboration icon in the system tray of the remote desktop, which lets you invite users to collaborate.  See Session Collaboration for details.
  18. Click Next.
  19. In the Guest Customization page,
    1. Next to AD container, click Browse, and select the OU where virtual desktop computer objects will be placed. You can type (paste) into the AD container field.
    2. Consider checking the box next to Allow reuse of pre-existing computer accounts.
  20. Click Next.
  21. In the Ready to Complete page, you may entitle users now, or leave it unchecked and do it later. Click Submit.

If you opted to add entitlements now:

  1. In the Add Entitlements window, click Add.
  2. Find a group that will have permission to log into these desktops, and click OK.
  3. Then click OK.

To check the status of the virtual desktops:

  1. Go to Inventory > Desktops.
  2. You might have to click the refresh icon on the top right to see the new pool.
  3. Click the link for the pool name.
  4. On the Summary page, if you scroll down, the vCenter Server section has a State field where you can see the status of the pool creation process.  It takes several minutes to publish the master image snapshot. After the snapshot is copied to the Replica, vSphere creates a digest file for View Storage Accelerator, which takes a few more minutes.
  5. Horizon Console has a Pending Image progress bar that doesn’t update automatically. To refresh it, scroll up and click the refresh icon.

  6. You can watch the progress in vSphere Client’s Recent Tasks list. In high-density pools, Instant Clones are forked from the cp-parent machine. In low-density pools, Instant Clones are cloned from the cp-replica.

  7. Eventually the pool’s tabs named Machines and Machines (InstantClone Details) will show the new machines.
  8. iccleanup.cmd can show you (list) the structure of the Instant Clones. For higher-density pools, there is a cp-parent at the bottom of the hierarchy. For Smart Provisioning of lower-density pools, there is no cp-parent.

If you wish to automate the creation of the pool, Aresh Sarkari at Automating Desktop Pool creation using PowerCLI – VMware Horizon 7.x explains New-HVPool -spec 'C:\temp\DesktopPool\LinkedClone.json' and the contents of the JSON file.

Entitle Virtual Desktops

To make a pool accessible by a user, it must be entitled.

  1. In Horizon Console, go to Inventory > Desktops.
  2. Click the link for a pool name.
  3. Switch to the Entitlements tab to see the existing entitlements.
  4. Click Add entitlements.
  5. In the Add Entitlements window, click Add.
  6. Find a group that will have permission to log into these desktops, and click OK.
  7. Then click OK.

Add Machine to Pool

  1. In Horizon Console, on the left, expand Inventory, and click Desktops.
  2. On the right, click the link for an existing Desktop Pool.
  3. At the top, click Edit.
  4. Switch to the Provisioning Settings tab, scroll down, and change the Max number of machines. Then click OK.
  5. With Instant Clones, this won’t take very long. In high-density pools, the new machine is forked from the cp-parent. In low-density pools, the new machine is cloned from the cp-replica.

  6. If you open the pool, the tabs named Machines and Machines (InstantClone Details) show the new machines.

Update a Pool

Master Image Preparation

  1. Power on the master/parent virtual desktop.
  2. After making your changes, shut down the master virtual desktop.
  3. Right-click the virtual machine and take snapshot. You must create a new snapshot.
  4. You’ll need to periodically delete the older snapshots. Right-click the master VM, and click Manage Snapshots.
  5. Delete one or more of the snapshots.
  6. In Horizon Console, go to Inventory > Desktops.
  7. Click the link for a pool name.
  8. On the Summary tab, click Maintain, and then click Schedule.
  9. In the Image page, select the new snapshot. Notice the snapshot’s monitor/resolution settings. Click Next.
  10. In the Scheduling page, decide when to apply this new image. If you select Force users to log off, notice you can customize the logoff message in Global Settings. Click Next.
  11. In the Ready to Complete page, click Finish.
  12. The pool’s Summary tab, near the bottom, indicates that the image is being pushed.

  13. You can click the tab named Machines (InstantClone Details) to check on the status of the push task. Notice the Pending Image.
  14. The snapshot is copied to each datastore.
  15. The snapshot is attached to a Replica, powered on, then powered off. Digest is then computed.
  16. Then the Replica is attached to a parent, and the parent is powered on. This all takes a bit of time. But the existing Instant Clones remain accessible until the Replica preparation is complete.
  17. Once Replicas are prepared, each machine is rebooted once.
  18. Eventually the Pending Image field will be cleared and the desktops are available again.

Host Maintenance – Instant Clones

Horizon 2012 (8.1) and newer have an option to Disable ParentVMs so vSphere Update Manager can put the hosts into maintenance mode. This uses the parentless Smart Provisioning technology. Find the option at Settings > Servers, select a vCenter server, click the More menu, and select Disable ParentVMs.

ESXi hosts running Instant Clones can be placed into maintenance mode without any special instructions.

Instant-Clone Maintenance Utilities at VMware Docs:

  • IcCleanup.cmd – use this utility to unprotect and delete some or all of the internal VMs created by instant clones. This is the easiest method of cleaning up Instant Clone internal machines.
  • IcUnprotect.cmd – use this utility to unprotect folders and VMs, delete VMs, and detect VMs whose master image or snapshot is deleted.
  • IcMaint.cmd – This command deletes the master images, which are the parent VMs in vCenter Server, from the ESXi host, so that the host can be put into maintenance mode. This utility generally isn’t needed. Also see VMware 2144808 Entering and exiting maintenance mode for an ESXi host that has Horizon instant clones.

Persistent Full Clones – Automated

Horizon can clone your Template machine to a specified number of Full Clones. Once Full Clones are created, you’ll need a Software Deployment tool, like Microsoft SCCM, to manage the Full Clones.

Customization Specification

Horizon uses a Customization Specification to specialize each machine cloned from the template:

  1. In vSphere Client, open the Menu and click Policies and Profiles.
  2. Make sure you have a Customization Specification with the settings detailed in the next few steps. You can create a new Customization Specification.
  3. In the Computer name page, set it to Use the virtual machine name.
  4. In the Windows license page, you can optionally set it to Include server license information but change it to Per seat.
  5. In the Network page, make sure the networks are set to DHCP. Once the machines are created you can manually set them to Static or configure DHCP reservations.
  6. In the Workgroup or domain page, enter credentials to join the new Full Clones to the domain.

Gold Image Template

  1. On the gold image machine, in sysdm.cpl > Advanced > User Profiles > Settings, make sure there are no local profiles other than your administrator profile and the Default Profile. Delete all others. Sysprep frequently fails if there is more than one profile on the template.
  2. If you have SCCM Client installed on your Gold Image, then see https://docs.microsoft.com/en-us/mem/configmgr/core/clients/deploy/deploy-clients-to-windows-computers#prepare-the-client-computer-for-imaging to prepare it for imaging.
  3. Shut down the Gold Image.
  4. Right-click the gold image, expand Template, and then click Convert to Template.
  5. Before creating a pool, test deploying a new machine from the template to make sure SysPrep is successful.
    1. Right-click the Template and click New VM from This Template.
    2. In the Select clone options page, check the boxes next to Customize the operating system and Power on virtual machine after creation.
    3. In the Customize guest OS page, select the Customization Specification you created earlier.
    4. If cloning fails, then see VMware 2001932 Locations of sysprep log files. Store apps (aka UWP apps) are a frequent cause of SysPrep failures. You can convert your Template back to a Virtual Machine, power it on, fix the problem, power it off, and then convert it to a Template again.

Automated Full Clone Pool

  1. In Horizon Console, in the left menu, expand Inventory and then click Desktops.
  2. On the right, click Add.
  3. In the Type page, select Automated Desktop Pool and click Next.
  4. In the vCenter Server page, select Full Virtual Machines. Select your vCenter Server and then click Next.
  5. In the User Assignment page, you usually want Dedicated assignment.
  6. Automatic Assignment is an optional feature that avoids you having to manually assign users to each full clone desktop. But manual assignments give you more control over capacity planning. Click Next.
  7. In the Storage Optimization page, click Next.
  8. In the Desktop Pool Identification page, give the pool an ID (no spaces) and a Display Name that is shown to users. Horizon creates a vCenter virtual machine folder with the same name as the ID. Click Next.
  9. In the Provisioning Settings page, specify a Naming Pattern. You can hover your mouse over the information icon to see the syntax. Then scroll down.
  10. After scrolling down, specify the number of machines to create. If you specify All Machines Up-Front, then Horizon will create the Maximum Machines. If you specify Spare (Powered On) Machines, then Horizon will try to preserve this specified number of unassigned machines. Click Next.
  11. In the vCenter Settings page, click Browse next to Template and select the template you created earlier.
  12. Click Browse next to the other fields and specify where you want the new machines to be created. Click Next.
  13. In the Desktop Pool Settings page, these settings are the same as Instant Clones, but Remote Machine Power Policy might be different. Scroll down.
  14. After scrolling down, notice the option for Show Assigned Machine Name instead of the pool name. Hover your mouse over the information icons. Click Next when done.
  15. In the Remote Display Settings page, specify video settings and then click Next. Horizon 2106 (8.3) and newer let you choose 5K and 8K monitors for Blast only.
  16. In the Advanced Storage Options page, note that View Storage Accelerator is just a read cache (no write caching). If your storage can handle the reads then enabling this feature probably isn’t necessary. Click Next.
  17. In the Guest Customization page, select the Customization Specification that you created earlier. Consider checking the box next to Allow Reuse of Existing Computer Accounts. Click Next.
  18. In the Ready to Complete page, you can optionally Entitle users After Adding Pool. Click Submit. Note: users must both be entitled to the pool and assigned to an individual machine.

Machine Administration

  1. Cloning progress – Use vSphere Client Recent Tasks to watch the progress of the cloning. It will take time for the cloning to complete plus time for SysPrep to complete.
  2. If you click the Pool name link and then switch to the Machines tab, you should eventually see the new machines.
  3. Assign User to Machine – You can select a machine, click the drop-down for More Commands, and then Assign User.
  4. Machine alias – By default, the pool’s Display name is displayed to each user. You can instead change it to the individual Machine Name, or to an administrator-specified machine alias.
    1. Go to the pool’s Summary tab and click Edit.
    2. Switch to the tab named Desktop Pool Settings.
    3. Scroll down and find the checkboxes for Show Assigned Machine Name and Show Machine Alias Name. If you select Alias Name, then an additional command appears on the Machines page.
    4. After editing the pool and enabling Show Machine Alias Name, On the Machines tab, select a machine, and then click the drop-down for Update Machine Aliases. The Alias is shown to the user instead of the pool’s Display Name or the actual machine name.
  5. Add Machines – To create more Full Clone machines from the same template:
    1. Click the name (link) of the pool.
    2. On the Summary tab, click Edit.
    3. On the Provisioning Settings tab, scroll down and enter a larger Maximum Machines.

  6. Update Template – If you plan to create more Full Clone machines in the next few months, then you should update your Template by converting it to a virtual machine, update the virtual machine, and then convert it back to a Template. Note that the updated Template only applies to new Full Clones and has no effect on existing Full Clones. To update existing Full Clones, use a Software Deployment tool like Microsoft SCCM.

Related Pages

58 thoughts on “VMware Horizon 2106: Virtual Desktop Pools”

  1. Hi Carl,

    Need one info. After deploying the instant clone desktop pool, I want to restrict user not to be able to login from multiple thin/thick/zero client. When they are logged in to one client, they cannot login to other clients, how to to do this?

  2. Hello Carl,
    We are using Horizon 7.13 linked clones and planning to upgrade to 8. We are using an application which depends on MSMQ Windows Feature on VDI VMs. Our current setup has a script which we have configured as a post synchronization script triggered from Horizon. This script will install MSMQ components on the VMs and eventually this process will create MSMQ Object under the VM’s computer account in Active Directory. We succeed to configure the same setup in Horizon 8. Our current Horizon VDI VMs are configured to be deleted after the user log off. So the VMs will be deleted and the corresponding computer account also deleted from Active Directory, including the MSMQ Object under it. But we have observed that Horizon 8 delete the VMs after the user log off, but the computer account is not deleted, but the computer account is reset. This process will keep the MSMQ object under computer account in Active Directory. While preparing the new VMs, Horizon use the same name and after preparation we are triggering the script to install MSMQ but since the MSMQ object is already there, installation will not be complete. Is there any option to configure delete computer accounts from Active Directory after the user log off ?

  3. Hi Carl & Commenters,

    I just got off the phone with VMware about best practices regarding WIn10 OS Swap File (pagefile) and how to size it, they are saying to go with Microsoft recommendations for the golden image.

    I was wondering what people set their pagefile to and if they have noticed any benefits. In the past I would keep the setting of let Windows automatically chose the right size, but I wonder if that is causing some low level thrashing against our SAN and in general causing perf issues as it keeps on having to adjust the size. We have plenty of space on our Pure array, so I am thinking of doing x1.5 of the memory allocated like old school and we have some developers who build apps that consume a lot of memory, anyone have any recommendations/experience?


    1. Are you seeing disk latency 10ms or higher? If not then I doubt changing pagefile would make any difference.

      If you increase the RAM assigned to each VM then there should be less pagefile activity.

      1. Hi Carl. Not over 10, just something is off, and just going through all the things I cant find good documentation on. I will leave pagefile alone. We have users who are experiencing bursts of latency that is causing their whole system to freeze. It may be related to a bug we reported that VMware is fixing in 2106.1, client crashes on linux zero clients, which I hope will address some issues in the windows client. While they QA that, my primary focus is on FSLogix and if we have a problem there. Some of the users can recreate the freezing as they navigate through outlook emails, those caches reside on a fileserver mounting the fslogix vmdks, the only thing I can think of outside of storage/server is some low level network issues.


  4. Good morning Mr. Stalhood

    I have an issue

    I created an instant clone pool and it asked for a cluster and folder. I don’t know clusters. I go to make cluster and it ask for switch? I give switch my nic and then click configure. I get green check mark! then I go to make instant clone pool again. I follow your instructions and it fails. I think it is due to the cluster and folder configuration.

    Why is this happening? What is good cluster configuration? Do you have pre-req instructions prior to these instructions for that set up? I could not find things on VMware website.

    Thank you.

  5. After deploying instant clone pool, when I put VM from pull in to Maintenance mode I can’t get it back to Available state. All other pool types working well only instant clones are affected. Any ideas?

  6. Hi Carl,

    Can we convert the pools configured for instant clone to Full VM?
    We are generally deploying Full VM pools , but some how we now see that we have snapshots being created for Horizon VM, can we check somewhere if the created pool is a instant clone or Full VM , as i dont see anywhere in pool configuration page.

  7. Hi Carl,
    Thanks for the excellent article. I have successfully deployed a pool of persistent full clone. In release before 2106, I could recompose these persistent full clone using the composer. How the composer has been deprecated in this release.
    I found that after changing the VM template in the desktop pool definition, new full clone will be created from the new template. But there does not appear to be a way to recompose existing clones.
    Any hints on how to recompose existing VMs?

    1. I prefer it this way. Pools should be either non-persistent (refresh on logoff) or persistent (never refresh/recompose). The older Composer method lets you do something in between where it’s persistent for a period of time until you decide to Refresh or Recompose, which causes loss of all changes performed by the user.

      To manage persistent machines, use traditional desktop management technologies like SCCM or VMware Workspace ONE UEM.

      1. Yes, that makes sense. Thanks for the clarification. If I might ask a related but different question from your other post on App layering (https://www.carlstalhood.com/app-layering-os-layer/). This approach (using the Citrix App Layering Image Preparation Utility) is useful inaccelerating recomposition of the parent VM templates (by adding and removing app seamlessly) but does not helping recomposing existing persitent VM.

  8. Hi all…here is a vague one. Horizon 8….created a few desktop pool and suddenly get the error “An error occurred in adding desktop pool. please try again” I am using a Domain admin account with Admin rights to everything in Horizon and vsphere. It allowed me to create two pools and the third comes with this error. These are basic automated floating pools, nothing special….stumped.

    1. Any errors in Horizon Events? Any errors in vCenter tasks? If it’s a customization timeout, then look in C:\ProgramData\VMware\VDM\logs on the Horizon Agent machine. Look in the Connection Server logs under C:\ProgramData\VMware\VDM\logs

  9. Hi Carl,
    thank you very much for your content, it’s very helpful. I have a question about a multi site, multi data center deployment. What would you use to keep the golden master in each site synced? I thought about content libraries, or do you have a better solution?

    Br Tim

  10. Hi Carl,
    We just upgraded to Horizon 8 (2006). We have instant clones in our environment and they are ‘recomposing’ (not sure what the new term is) fine, however, I don’t see the cp-parent machines for each parent/snapshot used in our pod on every single host. I was under the impression that each cp-parent would be present in each esxi host and each datacenter. We have more than 10 cp-parent machines but they are scattered all over the place. Some esxi host has 2, some has 4, and so on. Also, we have 2 datastores and I see all the cp-parents in one but not the other but both datastores have the cp-template and cp-replica machines.

    Thank you.

    1. I think the threshold is 12 VMs per host. If you have a single host with 12 VMs in one pool, then there should be a parent. Other hosts that have less than 12 VMs won’t have a parent.

  11. Carl,
    horizon 8 (2006) environment with Windows 10 2004 an dI am using Microsoft 365 enterprise apps on my master image. All looks good – performance and login time is acceptable with DEM and App volume and fslogic.

    I have one issue, I have been trying to appstack Visio 2019 standard (VL). I think because I activate my Microsoft 365 apps with shared computer activation, the visio appstack fails each time, I tried specifying KMS server, shared activation off, and tried appstacking it with a clean system that has office 365 and one with out. Any suggestion?

    Thank you,

    1. I never split my Office products to avoid this problem. You could put Visio in the base image and then use NTFS permissions to block unlicensed users. You would also need a process to change file type associations for licensed and unlicensed users.

      If you didn’t have App Volumes then I would do FSLogix App Masking to hide Visio but I don’t think App Masking works properly with App Volumes.

      1. Carl,

        Thank you for such a quick response. I am considering using FSLogic app masking as well- I was NOT aware of the issue with app volumes.

        The main issue how ever is when I try to install Visio on the master image, it still have issues with licensing /activating.
        Any step I need to take to activate Visio differently than Microsoft 365?

        1. For shared computer activation it will ask the user to sign in to activate the product. I’m not sure if you can mix VL with SCA on the same machine.

          1. in that case, is there a version of office 2019 that I should use that activates the same way as Visio and project? as long as I am not forced to use office 2016 Pro Plus, I will consider anything that will make this work, I have about 100 Visio licenses and I am e3 with Microsoft Office licensing – just an FYI

          2. I think you can create separate configuration.xml files for Visio vs the rest of office. The one for Visio would be the volume license version while the one for Office would the ProPlus version with shared computer activation enabled.

  12. Hi Carl, thanks for the great article.
    I’m in the process of migrating from Horizon 6\7 to 8 (Lined Clones to Instants Clones specially) and I’m a little bit confused. From what I’ve been reading, Instant Clones are being deleted on each logoff (I’m guessing is when user logs off, no?) but my Instant Clone pool never gets deleted.
    I’ve created a dedicated Instant Clone pool (desktop) with Automatic Assignment set to Enable, “Refresh OS Disk After Logoff” to Never (I read in your article it is not advised to set it to never so I’ll change it later on today), and Log Off After Disconnect set to Immediately.
    I’ve logged in to the Horizon environment, got a VM, created a temp file and logged off, nothing happened.
    The VM didn’t get deleted and whenever I’m connecting to the environment, and get the exact VM (the desktop pool contains only one created VM) I can see my new temp file (isn’t exist on the golden image).
    Any ideas why or what I’m missing?
    Thanks in advance

    1. If you enable “Refresh OS Disk After Logoff”, then it should revert whenever you logoff. Or you can do a Maintain > Schedule (aka Recompose) to force rebuilding the VMs. Or the Machines tab of the pool has a Recover button.

      1. Hi Carl i cant understand the solution that you gave for this comment, every logoff machine got rebuild again need to avoid this what can we do for the same. If i didnt enable the “Refresh OS disk After logoff” i am getting an error message on vcenter this VM machine need an Disk Consolidation. kindly guide me how to overcome the machne recreated on each logoff.

      2. Hi Carl,
        thanks for the quick replay.
        We’re actually trying to avoid the VM refresh \ deletion every time the user logs off (due to our application limitations) and if we’re able to avoid it then it’s actually good for us. The Instant Clones description I’ve read mostly talks about that Instant Clones will delete the VM and re-create it every time user logs off so it good to know there’s a way to workaround it.

  13. Hello Carl Stalhood How can I solve when I want to create windows 10 instant clone I do all steps until Guest Customization tab.In the guest Customization tab I cannot choose domian or it is not loading the domain name 🥺

      1. Carl Stalhood I have anotherquestion.When i create windows 10 Instant clone.Do i have to do windows 10 sysprep? is it important?
        I have 2 RDSH(RDSH01 and RDSH02) host.How can I configure cluster for RDSH01 and RDSH02?

  14. Hey Carl

    Simple question about instant clones (non-persisten floating). The VM/template we use for the source on the pool, should we keep it off or on always? I keep it off. When I need to make changes I turn it on and make my change, turn it off and take my snapshot and leave it off until the next update/change.

    1. One option is to leave it on so patching (e.g. SCCM) happens automatically. Then have a scheduled script that shuts it down, pushes to the pool(s), and then powers it back on again. Fully automated.

      Another option is to completely rebuild the master every patch cycle. The rebuild should be automated.

  15. Hi all, recently having some strange issues regarding a instant clone pool, when connecting to the windows 10 vdi, a black screen randomly is shown, but if i press ctrl+alt+delete i’m able to access to the task manager and invoke the explorer.exe, then after some seconds i’m able to proceed to the “normal” login/access to the desktop, hope someone has any idea regarding this issue. thanks

    1. Do you have the Windows logon GPO setting Interactive logon: Message text for users attempting to log on?

  16. Carl, Great work as usual. I appreciate all your help all these years. This is my first question to you. Windows 10 2004, when my users login to their virtual desktops via horizon view, towards the end of the startup, I get a black screen for about 8-10 seconds then we dee desktop and icons. What could cause this? any help, I appreciate.

    Thank you

    1. It’s usually logon scripts or Active Setup. You can do a procmon trace during somebody’s logon to see what processes are running during that time frame.

  17. Hi Carl,
    we’re still using Linked Clones and I’m currently in the process of evaluating the move to Horizon 8 and Instant Clones.
    With Instant Clones, is it possible to push a new image/snapshot to only a few manually selected machines in a pool, instead of to the entire pool? This would be in a dedicated assignment (semi-persistent) desktop pool.
    I’m used to doing it this way with Linked Clones whenever I’m testing new images/snapshots and I’m afraid this wouldn’t be possible with Instant Clones?

      1. Thanks Carl.
        I’m a little wary of a problematic image immediately affecting a lot of users (i.e. the whole pool).
        How do people usually test new images before pushing them out? Separate test pools?

  18. Followed all these steps. Via html on the browser I can launch the workstation however from the client it spins and eventually disconnect. On the admin console I get a warning that the pending session has expired. Thanks for your help

  19. Hi Carl, I need to know on selection cluster some reason i am choosing an cluster and users are working later my management provided 3 machine which i need to create other cluster. Later can i change the cluster setting to the Desktop pool , will it affect any ? kindly advice me.

        1. When Instant Clones deletes the machine and re-creates it, then the new machine should go on the new cluster.

          1. It Means it will all the machine in the pool and recreate it in new Cluster is it?
            Also one more think we cant able to recompose one machine particularly in Instant clone?

          2. Instant Clone won’t recreate the machine until a user logs off or until you do a Push Image.

  20. Hello Carl, I’m making a lab with full-clones but it wont work.
    I have one Connection Server and One VM with win10 with agent install.
    I have clone to template this Win10 VM and use that template to serve as a Master, but when I create the pool desktop it wont create the VM in vCenter and as I tried to log in to the VDI it appears the error “there’s no desktop source available”
    Any thoughts I might be doing wrong?

    1. In vCenter, if you clone the VM manually and use a customization specification, does sysprep complete without issue?

  21. I saw the instructions, but kind of worried to upgrade current 7.12 with linked clones and persistent disks which both technologies are depreciated in Horizon 2006

  22. Hi Carl,

    Is it possible to share more information or steps how to migrate persistent disk to Horizon 8 ?

    Thank you.

Leave a Reply