Hi
I am working on making our product compatible with virtual environments. At the moment we are working on VmWare Server 2.0 but in future we have plans to support VmWare ESXi as well. Our product runs on Windows OS within the virtual machine.
An important requirement is to ensure that people cannot breach our product licesning by installing a licensed copy of our product on one virtual machine and then make copies of that virtual machine. At the moment, our licensing engine uses the machine name and the volume serial number of the primary drive to generate a unique "machine identification code" for licensing purposes. Unfortunately, the machine name and the volume serial number values remain the same on copied virtual machine, whether the copies are run on same host OS (same host machine) or they are run on a different host OS (different host machine).
It is possible for us to use other parameters in addition to the machine name and the volume serial number to gurantee uniqueness of the "machine identification code". We need to find something which meets following criteria.
1. Some property of the guest OS that is always unqiue. This means that it is different for two copies of same virtual machine.
2. It can be retrieved by our licensing engine code from inside the Guest OS environment.
Some options we have explored are reading properties of virtual machine BIOS through C++/Assembly and using VmWare Infrastructure to read the UUID.LocationID from Host OS. However, so far this is not conclusive.
Can anyone provide some input about this?
Thanks
Regards
Nauman