Importantly there are two kinds of pools in Horizon: automatic and manual. Automatic pools are pointed to a specific template and spawn new machines based on that template, and manual pools will accept the importation of, really, any viable virtual machine.
But what if you find that you need to move a machine from one location into an automatic pool. There is no intended functionality for doing this. However, we are humans and we are clever.
I will lay out for you the procedures I used. We have a domain and our machines are all domain joined. You may want to make adjustments for your specific situation, but the essentials here should guide you nicely.
Before you begin, let your user know that there machine will be unavailable for half an hour to an hour and that you will want them to test access once you have made the changes.
- Remove the entitlement for that user from the machine and the pool.
- Remove the machine from the domain and shut it down.
- Delete the machine object from Active Directory.
- Use the Clone to Template function in vSphere to clone the machine to a safe template location.
- (You may at this point delete the original VM.)
- In Horizon, point the destination pool at your newly cloned template.
- Add a new machine to the automatic pool from the template you just cloned.
- Point the destination pool back to its preferred template.
- (You may at this point delete the cloned intermediary template.)
- Power on the newly added virtual machine and add back to the domain.
- (Move it to the correct OU in AD.)
- Entitle the user for the destination pool and newly cloned machine.
It’s a bit of a hassle but it has worked dozens of times for me.