An instant-clone desktop pool is an automated desktop pool created from a golden image using the vmFork technology (called instant clone API) in vCenter Server.
Instant clone technology replaces View Composer linked clone as the process for creating non-persistent desktops in Horizon. In addition to using the instant clone API from vCenter Server, Horizon also creates several types of internal VMs (Internal Template, Replica VM, and Parent VM) to manage these clones in a more scalable way.
Sometimes it happens that when an Instant-Clone desktop and image is removed the internal VMs are not removed completely. From Horizon 7.11 and newer VMware introduced a tool called IcCleanup.cmd which is located in the C:\Program Files\VMware\VMware View\Server\tools\bin directory. This utility can be used to unprotect and delete some or all of the internal VMs created by instant clones. Below I will explain how to use the utility to delete some of the internal VMs left behind.
Instant-Clone Smart Provisioning
With latest major version of VMware Horizon, VMware introduced Instant-Clone Smart Provisioning. Horizon automatically chooses to provision instant clones directly from the replicaVM without creating any parentVM. This is a big advantage with the older Instant-Clone.
ICCleanup.cmd is one of 3 utilities for Instant-Clone Maintenance. Check out the VMware Docs for more information: Instant-Clone Maintenance Utilities
When you want to delete a left over internal VM we want to create a list first. Start a Command-Prompt as an Administrator. Browse towards C:\Program Files\VMware\VMware View\Server\tools\bin and make a connection to vCenter. Use the following syntax:
iccleanup.cmd -vc vcName -uid userId [-skipCertVeri] [-clientId clientUuid]
- -vc host name or IP address of vCenter Server
- -uid vCenter Server user ID
- -skipCertVeri Skip the vCenter Server certificate verification (Optional)
- -clientId Client UUID, the unique ID for the server cluster made up of Connection Server and one or more replica servers. (Optional)
In my case this will be:
iccleanup.cmd -vc 10.10.0.221 -uid firstname.lastname@example.org -skipCertVeri
Get a list of internal VMs. Use the command “list“.
To delete the internal VMs you need to use the command delete -I <Index of internal VMs>. In my case the index number is 3.
The result shows the internal VMs are removed.
I hope this is helpful. Leave a comment if you have any questions about this.