How to download VMware ESXi Client if you’re on a slow link

A couple of days ago I’ve had a little bit of an issue with my installation of the OSX on my trusty 2010 MacBook Pro. Generally, my Mac has hanged and the screen went all funny, and the only way for me to get it working again was to do a reboot. After that all came up fine, but Safari started misbehaving and nothing I could think of, including clearing caches, preferences, history, etc. was helping.I don’t really want to go into too much detail as this is not the point of my post, but taking into consideration that:

  • I’m in Antarctica with extremely slow Internet link
  • I don’t have .dmg’s or other installation media for a lot of the software I use on my Mac (and, quite a bit of that comes from the Mac App Store anyway)
  • I do religiously make Time Machine backups and I’ve had a fresh one from pretty much just before the crash

I’ve decided that the easiest course of action is to restore from the Time Machine. Two hours later my Mac was back up and running, all software working correctly and the world again was a better place (at least for me).

What’s all that to do with the subject above? Well it turns out that I’ve somewhat forgotten about one minor thing, which did cause a slight inconvenience. I’m using Parallels and I’ve had a Windows VM installed on a local disk of my Mac, and which I’ve decided no to include in the Time Machine backup. I’ve also had a clone of that VM on an external hard drive, but as I wasn’t using it routinely, it really was quite old and not all software I’ve had on the local one has been installed on the external one. One of the missing applications was the VMware Client.

A quick word about VMware vSphere Client

In the real world I have two physical servers running VMware. One of those is a really old machine and the latest supported ESXi version is 4.1U3. The other one is a fairly new server and it’s running VMware vSphere 6. And, in addition to that, there’s a couple of servers I’m looking after here in Antarctica, and they all run ESXi 5.5.

For some reason I don’t fully understand, each version of the ESXi requires its own version of the VMware Client. It’s not that the newest client supports older versions, each really does need all of a 300MB client!

Now – the fact that I’m running three different versions of ESXi that I need to access means I need to download 1GB of client software.

To make matters worse, VMware in their wisdom decided to retire ESXi 4.1 – as the result of that, there’s no direct download links for the client software directly compatible with this version. The only way to get it is to download a newer, officially supported client, and then let it download the older version. That’s all fine, but this would pretty much fill up our Internet link for several hours and make a lot of people unhappy.

So what does one do?

Downloading stuff over a slow link to Antarctica

The slow link we have here means we need to manage downloads. If there’s anything we want to get here that’s more than just a couple of MBs, the way to do that is to download it to a server in the real world, and then use rsync with bandwidth limit to trickle download it here. This uses just a couple of percent of the link’s bandwidth, and typically means in a day or two I can have my large file.

The one problem with that is more and more software makers publish their software on a web site that requires JavaScript working (I’m looking at you Apple, and VMware) to be able to click the download button. Without JS it’s not possible. Sometimes I can start the download on my Mac here in Antarctica, stop it immediately and copy the download URL to a remote server to use wget/curl or even lynx to download the file there. More and more often I can’t do that, as the web server requires a cookie or a session to proceed with the download.

Yet the VMware Client is able to download other versions and it does so without logging in, without JavaScript – simply using the direct download URL.

URL for VMware Client direct download

I’ve managed to find a couple of websites which list the URLs to ever changing VMware Client versions. Some of those links worked, some didn’t. But finally, when I looked at the URLs and the files I get, it all made sense. Ladies and gentlemen – instead of giving you the URLs to the particular versions, I think I’ve figured out the scheme VMware use to construct those URLs!

The way to direct download the VMware Client version you need to a remote server is to:

  1. run the VMware Client version you have and try to connect to a remote ESXi host
  2. let the client start downloading the new version and when presented with a window asking if you want to run or save the file, choose save
  3. in a minute or so stop the download and check the name of the file that the client started downloading. In my case, for the client compatible with ESXi version 4.1U3, the downloaded file was VMware-viclient-all-4.1.0-1651023.exe
  4. construct the URL from which to download the file, using the following template:

    http://vsphereclient.vmware.com/vsphereclient/A/B/C/D/E/F/G/VMware-viclient-all-X.Y.Z-ABCDEFG.exe

    where:

    • /A/B/C/D/E/F/G are the individual digits of the build version number for the client
    • X.Y.Z is the vSphere version

So in the example above, the full URL would be:

http://vsphereclient.vmware.com/vsphereclient/1/6/5/1/0/2/3/VMware-viclient-all-4.1.0-1651023.exe

All that’s left now is to log in to the remote server, wget the link above, and then slowly rsync it to my laptop. It still means I need to download 1GB of software, but at least I can now do it in a managed way.

Leave a Reply

Your email address will not be published. Required fields are marked *