Add vSphere support

We shouldn't be catching NPEs this way. Use a proper exception or return value.