Hi @Ade ,
maybe using a PowerShell script is an option:
In this example a VM with IIS will be created.
Using the Custom Script extension it's also possible to install applications on the VM with Chocolatey during deployment: https://chocolatey.org/
This way you get an automated deployment with the option to easy customize to you needs (for instance if the VMs are "almost the same but exactly the same").
(If the reply was helpful please don't forget to upvote and/or accept as answer, thank you)