As kjb007 stated, changes will not take place right away when you manually edit .vmx file as it's not loaded up while the VM is still running or even if it's powered off for that matter.
Without having to go through the process of unregistering/modify/re-register you can utilize "vimsh" and depending on what version of ESX/ESXi there will be different versions of the command, take a look here to figure out which version you have: http://engineering.ucsb.edu/~duonglt/vmware/#vmware_vimsh
Now onto a possibly scripted solution, if you plan on powering down the VM and making the changes to the .vmx file using sed or evening just appending the appropriate lines, you can use the VmId of the VM you've modified and just run a reload function from "vimsh".
Steps:
vmware-vim-cmd vmsvc/getallvms | grep VM_NAME" | awk '{print $1}'
vmware-vim-cmd vmsvc/reload VmId
-
Here is an example of what the output would look on ESX 3.5u3:
# vmware-vim-cmd vmsvc/getallvms | grep "William-XP" | awk '{print $1}'
1072
# vmware-vim-cmd vmsvc/reload 1072
#
Knowing this, you can easily script something that'll automate this for you given a list of VM(s). Hope this helps, the other solution is looking at Powershell or VI Perl Toolkit
=========================================================================
--William
VMware ESX/ESXi scripts and resources at: