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.
Changes
- 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 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.
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