Our QA team requires Vista VMs for testing (installers, features, performance general compatibility, etc.). Physical PCs with Vista installed don't cut it since they make it difficult to roll back to specific points in the process.
The problem is that Vista's activation model is completely incompatible with this model. I haven't traced down exactly what causes Vista to deactivate itself, but it seems related to moving VMs between workstations. This happens a lot for us. It also seems to deactivate if we upgrade VMWare Workstation (unconfirmed).
We are an MSDN partner so we have plenty of product keys for Vista, but it's a huge pain to keep reactivating it. Even moreso since we make heavy use of snapshots (ie, reactivate it in one snapshot, then roll back to a different one and you have to reactivate again).
Has anyone found a way around this, or does VMWare have some tool I'm overlooking to keep Vista from panicking every time the desktop machine changes?
Finally, has anyone had this issue in ESX 3+?
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.
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.
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.
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.
ESX does not help at all with deactivation. I ended up moving the Vista/Windows 2008 VMs to a Hyper-V system and I no longer have problems with activation/deactivation.
old: After contacting MS Support and getting no help I've decided to just go the ESX route. I have some extra hardware coming in a couple of weeks that I'll build out as a dedicated QA ESXi server. We don't need the extra features of ESX/Infrastructure/vSphere so we can avoid their licensing cost and stick with the free one. I guess I'll find out whether activation still freaks out when the VM is sitting peacefully on a single server. Ryan's answer is probably the right one in cases where you don't have extensive lists of test cases that require specific versions of preinstalled software.