The VI Toolkit for Windows provides 125 cmdlets, which is a pretty big number. However, ESX and vCenter are big and complex products, so 125 cmdlets is nowhere near comprehensive. Our challenge is to grow the toolkit to be a complete automation solution while not confusing the heck out of everyone with a giant list of commands.
One of the ways we've approached the problem is to provide a cmdlet called Get-View which gives you access to the raw web services API provided by ESX and vCenter. When something is not provided natively through cmdlets, you can use the Get-View "escape hatch" to do just about anything you want. Today's theme is just that, a few recent examples from the community that show how you can do some really useful stuff, even though we haven't yet written a cmdlet designed to do it.
Templates can be quite big and pose a challenge to storage management, so it's nice to be able to move them around. Moving templates across datastores is something the VI Toolkit doesn't do out of the box, but not to worry, Niket shows how you can move templates across datastores by accessing the VI API.
Even though the VI Toolkit doesn't have a cmdlet for it, Hal shows that it's pretty easy to reboot or shut down an ESX host with PowerShell.
If you need to add an unregistered VM to ESX or VC, Luc shows how you can register a VM based on its VMX file. One of these days we'll be adding an Add-VM cmdlet that will make this really easy, but this is a workable solution in the meantime.
With the Toolkit it's really easy to get a listing of all disks associated with a VM, however it doesn't help you identify what disk it is within the VM itself. This week, a couple of solutions have been proposed, one from adavidm and one from Hugo Peeters. Both these scripts rely on a combination of some of the advanced data available through VI API and also getting information out of a Windows VM via WMI
BTW, if you haven't subscribed to Hugo's blog you should really do so, it's full of great tips.