New Horizon Golden Image Deployment Tool released

Today at VMware Explore I have launched a new version of the Horizon Golden Image Deployment Tool aka hgidt. This new version is a complete rewrite of the old one as I moved the code base to Python. As base I used a converted framework of the old tool (using ChatGpt :D) in Tkinter and my existing python module for Horizon.

Why the rewrite?

I decided for a rewrite as I wante dto be able to publish the tool as an app and most anti malware tools will flag an exeutable that turns out to be a powershell script as malicious. Besides that I thought it would be easier to make the tool more flexible and more important faster. I also wanted to be able to use it from a mac. While the tool itself works flawless when started as a script I did run into issues compiling it into a Mac App so for now I don’t have that yet.


  • Switch from Powershell 7 to Python
  • replaced the selector for machines to deploy a secondary image to to a dropdown and number for amount or percentage of machines
  • published as an executable
  • Credentials storing made optional
  • Moved storing of credentials to the local credentials store
  • Connect button connects and gets info for both VDI & RDS

Where can I get it?

For now a zip file with the executable (and a ton of other files, it was either that or a slower starting app.) can be found on my Github which also has my (messy) source code.

Did anything change in how I use it?

Only some tiny bits like the option that I added to store the password or not and some slight changes on the VDI/RDS but I think these will be self explanatory.

Pics or it didn’t happen

The executable among the 1000’s of other files needed for Python

The configuration page, note the checkbox to store the password.
With the popup to ask for the password
After testing the credentials

The VDI & RDS Tabs after connecting. Take note of the already selected resizing options. These will be read from the current config so you get the same size when redeploying.

After selecting a new snapshot and enabling the secondary image to be pushed to selected machines
Deploy button was hit
And after a refresh

Todo list & bugs

  • FIx the percentage of machines that sometimes fails
  • add more logging
  • find a method to package into an app for macos

Used Python Modules

These are the modules I am using in this application

  • tkinter
  • tkcalendar
  • datetime
  • configparser
  • os
  • horizon_functions (own custom module)
  • keyring
  • requests
  • threading
  • time
  • sys
  • math
  • loguru
  • ttkthemes

My #100DaysOfCode #Python Challenge == VMware_Horizon Module

So after 5 weeks of following the #Python training for my 100DaysOfCode challenge I have decided that my main goal for the challenge itself will be to work on the Horizon Python Module. With the course some things I find really boring and I need a real target to really learn things instead of just repeating someone else is doing as well.

I will still do some of the fun parts of it in time like databases and such when I need it but for now I will focus on the module. This weekend I added handling of the Instant Clone domain accounts to the module and also added documentation both in the module and the github repository. I know I will still learn heaps because almost all of it is still rather new and repetition works best for me.

Added Methods to the module

  • External Class
    • get_ad_domains
  • Settings class
    • get_ic_domain_accounts
    • get_ic_domain_account
    • new_ic_domain_account
    • update_ic_domain_account
    • delete_ic_domain_account