In the light of the offically released Virtual Infrastructure Toolkit I decided to create a simple powershell script. I’m planning to create more powershell scripts and post them on virtualfuture.info.
The first one is a script which can remove the connected iso files from the CD drive. Some administrators do not disconnect a CD drive when the have finished use the ISO, the side effects of this behaviour are: the VM regurally polls the CD drive which creates a slight overhead and a VMotion may fail. This script can run unattended e.g. every night so even when an ISO file remains mounted it is ejected everynight. Here’s the script:
Connect-VIServer -Server myVIserver (connect to the VI server)
get-cddrive -VM * |where {$_.ISOPATH -ne $null}|set-cddrive -nomedia
I think the script speaks for itself.
So if anyone thinks of something to script and don’t know how please leave a comment and maybe we can find a way to script it.
Related articles
Tags: ESX, Powershell, script, Toolkit, VMware


July 29th, 2008 at 12:34 pm
Het moet zijn connect-viserver
[Reply]
Johan van Zanten reply on July 29th, 2008 1:28 pm:
Hi Rob,
Thanx for the comment a typo can easily be made. In reply of your comment are there any automated tasks you would to have scripted or do you have by any means usefull scripts ?
Johan
[Reply]
Rob Mokkink reply on July 29th, 2008 6:06 pm:
Hi Johan,
I created a couple of scripts, for example the HBA loadbalance script, see http://blogs.vmware.com/vipowershell/2008/07/storage-path-lo.html
Currently i am busy creating a script that read a .csv file, creates a VM based on a template. But it can also poweroff and remove a VM and redeploy it.
Also the script has the possibility to be put in a resourcepool or in the clusters default resourcepool.
Ask Matthijs about it, he is my current collegue at project we are working on right now.
[Reply]
Johan van Zanten reply on July 30th, 2008 12:39 pm:
Hi Rob,
I have read the storage-path-lo article on the VMware blog and found in an facinating process.
The one you are working is just the function Sven asked about, I am axious to see what’s the result of that.
I prefer the simple oneliner scripting thingies because they show the real power of powershell and are much easier to understand for people who are starting with scripting / powershell
Chris Woods reply on August 20th, 2008 1:18 pm:
Hi Rob
Hows the script to read from a csv file and create VM’s based on a template going. I’ve got as far as creating the VM’s from a csv file but struggling with creating them from a template.
July 29th, 2008 at 1:31 pm
Hi Johan,
Can you create a powershell script that disconnects the network interfaces in all virtual machines? This can be usefull in case of a virus-outbreak.
Another script that would be usefull is a script that reads out a CSV or TXT file (which contains certain parameters like VM-name, memory size, network, template to use) and then uses those parameters to deploy a new VM.
[Reply]
Johan van Zanten reply on July 29th, 2008 1:45 pm:
Hi Sven,
That’s easy:
First you need to connect to a VI or ESX server with the Connect-VIServer (like Rob pointed out)commandlet
next you use the get-networkadapter commandlet en pipes the output to the set-networkadapter
the complete commandline will be:
Get-NetworkAdapter -VM * |set-networkadapter -connected $false
the otherone I will explain in a future article
grtx Johan
[Reply]
July 29th, 2008 at 1:54 pm
Johan,
how about this:
list al VM’s which has snapshots, then delete those snapshots.
[Reply]
Johan van Zanten reply on July 30th, 2008 8:54 am:
Hi Sven,
What I like about powershell is the simplicity of the commands and the ease to create powerfull single line scripts, aka one-liners.
That’s easy as well but it took a little work:
first I put all the snapshots into a single variable with this command:
$snap = get-snapshot -vm * this variable can be used as input for the actual removal:
remove-snapshot -snapshot $snap.
you can combine the two commands on a single line:
$snap=get-snapshot -vm * ; remove-snapshot -snapshot $snap
on the otherhand I cannot emphasize the importace of being carefull with such powerfull commands !
that’s all
[Reply]