Recently had to move some virtual machines from a free prototype esxi host to a vsphere HA cluster on a separate server with no shared storage between the two hosts. Some simple google-fu linked me to a great post by William Lam on the topic. A basic synopsis and some caveats are recorded here for future use.
Install ovftool from vmware. (requires login with your vmware account)
Helpful Tip: After installing, add the path to your path statement
The simple command to move from one server to the other is
C:\>ovftool -ds=TARGETDATASTORE vi://USER@SOURCEHOSTNAME/GUESTNAME vi://USER@TARGETHOSTNAME
If your guestname has spaces in it, add the obligatory quotes around the entire path. for example
C:\>ovftool -ds=TARGETDATASTORE vi:"//USER@SOURCEHOSTNAME/GUEST NAME WITH SPACES" vi://USER@TARGETHOSTNAME
Helpful Tip: names are case sensitive
It will prompt you first for the password on the source server, then if everything checks out, the password for the target server
C:\>ovftool -ds=datastore01 vi:"//root@vmware01/Windows Server 2012 Base Image" vi:// root@vmware02n1 Enter login information for source vi://192.168.1.1/ Username: root Password: ******** Opening VI source: vi://email@example.com:443/Windows%20Server%202012%20Base%20Image Enter login information for target vi://192.168.2.2/ Username: root Password: ********* Opening VI target: vi://firstname.lastname@example.org:443/ Deploying to VI: vi://email@example.com:443/ Transfer Completed Completed successfully
While it is transferring it will show progress indicators. You can also check in vSphere or vCenter to see the task progression on both servers. It will take a bit depending on the size of the VM, but faster than transferring twice by using some intermediate storage location.
Other details are available in the ovftool storage documentation, but for the occasional moves between non-connected devices, I have found this to be the fastest and simplest.