Automated software testing on real hardware
Solution 1:
You can absolutely use a set of VMs based on some “golden image” + differentials, and you can discard these over the time increments when / if needed. This is PowerShell scriptable (turn VM off, discard diffs and so on) and you can use Chef / Ansible for some higher level of automation as well. Alternative way would be using Veeam Community Edition which can do the same even w/out OS snapshots. It’s PowerShell scriptable of course, so automation is again easy to implement.
Solution 2:
Another option is to boot from VHD, create an OS base install with everything you need configured and installed. Make a copy of the VHDX. Then run your tests and replace the "dirty" VHD with the backup copy and start over. You can automate some of this as well.
Solution 3:
I recently learned the CloneZilla have this:
Multicast is supported in Clonezilla SE, which is suitable for massive clone. You can also remotely use it to save or restore a bunch of computers if PXE and Wake-on-LAN are supported in your clients.