How to use any MAC address on a VMWare ESX/ESXi guest.

We have a software license that was tied to a particular MAC address. When we virtualized this machine, the license was no longer working as the MAC address had changed.

If you go in to the properties for the network adapter with the VMWare Infrastructure Client, you will see that you are limited to a range of MAC addresses (essentially you cannot change the vendor portion of the MAC).

Apparently there is no way to put any arbitrary MAC address and unbelievably this is an intended behavior.

First I set the MAC address to be manually specified in the range allowed. Then I enable the "Tech Support Mode" and enable ssh support. I then use an ssh client to connect to the VMWare server, I then navigate to the folder containing the guest VM, and I edit the .vmx file associated with it as ESXi conveniently provides the vi text editor. The value you want to change is called ethernet0.address although the number will be different if the guest has multiple Ethernet adapters.

Simply type in the desired MAC address and then save the file. When you boot up the guest you should be able to verify that the MAC address has indeed been changed.

One caveat, if you go back in to the network adapter properties with the vmware client, your changes will be overwritten. Also, this has only been tested with version 4.x of VMWare ESXi, later versions may render this workaround inoperative.