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
February 18th, 2010 at 12:26 am
Is it at all possile to that the CD Removal ISO Script and report on VMs that have a CD ISO mounted — I don’t want to remove just identify
Reply