Update – read to the end, I just got some news on some…limitations.
Update #2 - All API restrictions have been removed with v3.5U3!
Update #3 - false alarm
According to Mike D, this was an accident and it’ll be turned off in U4.
Have you checked out VMware’s free ESXi hypervisor yet? It’s some pretty neat stuff, taking most of the high perf features we know and love from its big brother and wrapping them in a tiny package. It’s a great tool which I’ve started to get into lately (we have an existing VI3 ESX shop).
One thing you cannot do with the free version however, is connect to and manage multiple host systems at the same time. The VI Client is great, but it’s scope is limited to a single server. If you happen to have a VirtualCenter, you’ll find that you can’t add an ESXi server to your farm—it fails due to a missing license.
Not all is lost! Late in the dev cycle of VMware’s VI Toolkit (for Windows), they added a Server parameter to every cmdlet. Let me show you how you can use it to control multiple ESXi servers at once—for free. You can’t beat free.
PS > $esxi = Connect-VIServer 192.168.0.51,192.168.0.55 -Credential (Get-Credential)
cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
Credential
PS > $esxi
Name Port User
---- ---- ----
192.168.0.51 443 root
192.168.0.55 443 root
PS > $DefaultVIServer
Name Port User
---- ---- ----
192.168.0.55 443 root
PS > (Get-VM | Measure-Object).Count
7
PS > (Get-VM -Server $esxi | Measure-Object).Count
10
Note that if you leave off the Server param, the cmdlets will operate on the most recently-connected server, which will be stored automatically in the $DefaultVIServer variable.
Limitations to Management API in ESXi
I just learned from the product group that most of the objects exposed by the VI API in the free edition are read-only. This is pretty harsh. This means your reporting scenarios will still work well, but you can forget about ongoing maintenance. I’ll probably post a follow up to this article once I have a better handle on what you can and can’t do. Stay tuned.
Update @ 12/14/08 - With version 3.5U3, VMware has thankfuilly decided to remove all API restrictions. See this article.

Hi,
I was wondering if you can remotely connect to the VMs from the same machine?
One of the things I like about hyper-v (and vmware 2, virtual server) is that you do not need to connect to the VMs from another computer. In cases where we have only one machine this becomes a requirement. My grip with Hyper-v on Win 2008 Server Ent. is that it’s just too CPU intensive.
This is one of the questions I would like to have answers for prior to switching.
thanks
Lawrence
Well, it sounds like you are asking if ESXi has a local graphical console from which you can manage the VMs. If that is the case, then the answer is no. The same can be said of ESX, Windows Server 2008 w/Hyper-V in Server Core mode, as well as “Hyper-V Server” which believe it or not is an even further slimmed down version of Windows without a GUI but with a hypervisor.
On the other hand, the performance differences will be pretty significant. VMware Server is very slow as compared to ESX or ESXi.
This got my attention, right up to the ‘read only’ spoiler… it’s a pity VMware chose to hobble the API but without the luxury of virtualisation being an enabler (ala Citrix, Microsoft) rather than a core business I guess they have little choice.
Hypervisors are all but commoditised now with Xen and it’s derivatives, Hyper-V Server, etc. so I guess it’s just a matter of time.
Sam
Actually I have news. With v3.5U3, they have removed all API restrisctions! See this article: http://www.mikedipetrillo.com/mikedvirtualization/2008/12/vmware-rcli-now-writes-to-esxi-free-hosts.html
Ok, that makes more sense as there were conflicting posts on this subject… anyway that’s great news!
Sam