Windows Vista activation in VMWare
Solution 1:
Your mileage may vary based on country, company you work for, time of day and mood of the person you speak to but when I had this issue I used the 'call microsoft' option, told the lady on the phone that it was running in a VM and she fixed it all up for me. Gotta be worth a try right? Best of luck.
Solution 2:
I do not know how to offer you specific advice for VMware, but I can tell you that I believe Vista Activation is tied to things like MAC address and the UUID. If these things change, Vista will ask you to re-activate.
Vista gathers a "Hardware ID" as part of the activation process, and due to the dynamic nature of virtualized hardware, there are sure to be extra hoops to jump through.
I would start by setting your virtual machines to keep the same MAC address, and make sure they always run on the same type of CPU.
Solution 3:
Have you thought of installing Vista in demo mode without a key? Normally, you would have 30 days before having to activate, but with the instructions at this link from Jeff Atwood, you could use Vista in demo mode for 120 days.
http://www.codinghorror.com/blog/archives/000778.html
This should reduce the number of activations you have to do.
Solution 4:
This really is the type of situation that the Trial mode was made for. These aren't permanent workstations that need to be up for months/years at a time. They're throw away VMs that are constantly being rolled back for testing purposes. You just need to tweak your procedures a bit so that the QA people can revert back to sysprep'd base images where the Trial timer hasn't actually started yet. I'm not sure how many extra licenses you're paying for, but this would end up saving you money on those as well.
Your other option is to actually increase your license count to the point where you become a Volume license customer and have a KMS license. KMS is essentially an in-house activation server. Instead of your VM's all having individual keys that need activating by Microsoft, they have no key and use slmgr.vbs to point the activation requests at your internal server. Then it doesn't matter when Vista panics because it'll just re-activate from your server.