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:
http://www.vagrantbox.es/
I’d like the same for Windows, for a large number of reasons. Vagrant is ALMOST that tool.
http://kamalim.github.io/blogs/how-to-create-you-own-vagrant-base-boxes/
http://www.thomasvjames.com/2013/09/create-a-windows-base-box-for-vagrant/
http://serverfault.com/questions/331953/using-vagrant-and-chef-to-setup-a-windows-vm-in-ubuntu
http://www.haidongji.com/2013/04/01/setting-up-windows-development-environment-with-virtualbox/
http://tech.wonga.com/blog/blog-view/create-windows-virtual-machines-with-vagrant-and-virtualb
Vagrant 1.6 or later supports Windows fairly well, there are workarounds if you use older versions of Vagrant
https://github.com/WinRb/vagrant-windows
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.
http://blogs.msdn.com/b/knom/archive/2009/04/07/windows-7-vhd-boot-setup-guideline.aspx
http://blogs.technet.com/b/haroldwong/archive/2012/08/18/how-to-create-windows-8-vhd-for-boot-to-vhd-using-simple-easy-to-follow-steps.aspx
http://technet.microsoft.com/en-us/library/hh825691.aspx
http://www.zdnet.com/blog/bott/how-to-use-a-vhd-to-dual-boot-windows-8-on-a-windows-7-pc/4847
http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx
Your host OS has to be Windows 7 Ultimate/Enterprise, Windows 8, or Windows Server 2008/2012. I think.