On Linux, Vagrant (https://docs.vagrantup.com/v2) is nice – you have a simple vagrant script, run it, and out pops a completely fresh Linux image. This makes maintaining systems easy – as long as you keep per-machine data largely on servers or off the root image, you can always be using brand-new fit-to-purpose systems. And to that purpose, there are a large number of base boxes you can build your Vagrant-customized VM on top of:
I’d like the same for Windows, for a large number of reasons. Vagrant is ALMOST that tool.
Vagrant 1.6 or later supports Windows fairly well, there are workarounds if you use older versions of Vagrant
You can boot Windows from a VHD disk image, meaning you can run Vagrant to create your image, then actually boot and run from it, rather than running it in a VM.
Your host OS has to be Windows 7 Ultimate/Enterprise, Windows 8, or Windows Server 2008/2012. I think.