That's the question: Is there a way to obtain the underlaying hardware UUID from a guest operating system (Windows) to prevent virtual machines to be copied to another host? In other words, I need a way to detect that a virtual machine with my activated software have been copied to another hardware. My protection is based on the NIC MAC address and the motherboard UUID.
Thank you in advance.
The VMware Tool does not expose anything special for you to key off of ... there is a way to set custom attributes within the .vmx file which can then be extracted from with the guest, the problem with this is A) you need to add an entry to the .vmx file which again requires the privileges we've been discussing B) this can be blocked by setting specific security entries within the .vmx to not allow for this information
I would recommend you contact VMware for the best approach on accomplishing this and definitely sign up for TAP
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
VMware Code Central - Scripts/Sample code for Developers and Administrators
If you find this information useful, please award points for "correct" or "helpful".
Which UUID are you referring to VM's or Host (ESX/ESXi), if it's the latter or in either case, your utility would A) need to have credentials to login to either vCenter or ESX/ESXi host which may violate any security you have in place B) also have access to the management network which again will violate most security policies.
Here is where you would find the Host UUID - http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/vim.host.SystemInfo.html
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
VMware Code Central - Scripts/Sample code for Developers and Administrators
If you find this information useful, please award points for "correct" or "helpful".
Thank yoy very much.
I refer to the Host UUID, the real one, to detect if my VM has been copied to another hardware, breaking my software protection/activation system. I would like to know if de host o ESX UUID can be read to mak it part of my unique ID to generate the activation key. Now I don't have a way to determine if my activated software alngo with th virtual machine is being duplicated to be hosted on another hardware.
I see this type of question in the dev forums all the time and I personally don't have a good answer or how ISV's are tracking this .... the problem is to retrieve any information outside of the guest (e.g. vCenter or ESX/ESXi host) you'll need credentials to pull that information and network access to the management system. If you can, then yes you can pull that information but in general it's probably a bad idea and you most likely won't be able to if you distributed your application and it's installed in somebody's environment as it most likely will be segmented off from allowing the VMs to access the infrastructure services.
So yes, you can get this information .. whether or not it'll be truly useful in really generate a unique value to ensure your software has not been copied ... that's a hard one. You'll probably need to associated it with additional unique values perhaps instanaceUuid for a given VM which is suppose to be unique ...
I don't know if other VMware Dev's have any other suggestions but this is something that you may want to contact VMware support directly and specifically their dev support organization OR TAP program for ISV/developers. I would definitely be interested to hear how this is currently validated to ensure duplication of the VM is not occurring?
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
VMware Code Central - Scripts/Sample code for Developers and Administrators
If you find this information useful, please award points for "correct" or "helpful".
As I can see it's not sou easy what I'm asking for !http://communities.vmware.com/images/emoticons/confused.gif!. I was thinking in some kind of device driver for windows which communicate with VMWare tools to obtain special information like this, without any other kind of authentication. In the same that way we can obtain VM's UUID with th Windows API GetSystemFirmwareTable. Do you know how does Microsoft to prevent Windows servers from being copied through VM duplication?
Thank you very much.
The VMware Tool does not expose anything special for you to key off of ... there is a way to set custom attributes within the .vmx file which can then be extracted from with the guest, the problem with this is A) you need to add an entry to the .vmx file which again requires the privileges we've been discussing B) this can be blocked by setting specific security entries within the .vmx to not allow for this information
I would recommend you contact VMware for the best approach on accomplishing this and definitely sign up for TAP
=========================================================================
William Lam
VMware vExpert 2009
VMware ESX/ESXi scripts and resources at:
VMware Code Central - Scripts/Sample code for Developers and Administrators
If you find this information useful, please award points for "correct" or "helpful".
Was there any conclusion here from VMWare? Is it a combination of CPU info and MAC address and UUID?