Category Archives: PowerShell

PowerCLI 4.1 Poster and Quick Reference Guide

Recently released on the PowerCLI site there has been an updated version of the PowerCLI Poster, this time the PowerCLI Documentation and Engineering teams have done a great job of updating it into a readable poster and have even added my quick reference guide to it to make it an awesome document.

Included in this poster you will not only find every cmdlet collated into some nice readable sections but also code examples and further PowerCLI and PowerShell resources, download the pdf from below:

image

Simple PowerShell selection box

A few times in PowerGUI or generally I have needed the user to select a single entity so that I can use this entity further in the code to narrow down the output, with this in mind i created a quick PrimalForms form which can be used as a function and a single object selected, the below code can be used within GUI apps like PowerGUI or vEcoShell or just from the powershell prompt.

For example if you wanted to select just the VMs from one host you could present the user a nice GUI with all the hosts added to the dropdown box with the following simple code:

# Send the Hosts to the GUI function
Select-GUIObject "Host" (Get-VMHost)
# Get the VMs for the selected host
$SelObj | Get-VM | Out-GridView

 

So the GUI box presented from the Select-GUIObject would look like so:

image

Once the host was selected and the OK button was pressed the VMs would be returned in $selObj and a list of VMs can be gained as in the next line of code and the following output from Out-Gridview:

image

Other examples of this function can be used with Get-VM or Get-Datastore or whatever you like, this is one of the areas I have spoken to the people at Quest and I believe they may be making some improvements to PowerGUI & vEcoShell to make input easier.

The code: Continue reading

London VMUG – Thu 15 July – Lets get interactive !

I have been given my normal resident slot at the London VMUG this Thursday, 15th July.

At the last VMUG I showed how vEcoShell could be used to add the graphical interface back onto our PowerCLI scripts and also gave an overview of the “VMware Community PowerPack”, when performing the demo I showed how easy it was to drill down into an object using the debugger in the script editor.

Someone asked me if next time I would give more tips and tricks like this, the kind of tips you pick up without realising it and are really helpful to people starting to learn PowerCLI.

So this time there will be a change in the way my session is presented…. We are going to get interactive !

If you are attending my PowerCLI session at the VMUG this Thursday 11-12, please bring along the following equipment:

I will bring these on a USB stick also but it will help if you are already setup and raring to go !

My plan is to host a ESX host and a vCenter VM and a few other VMs which we can all hook into and mess with, we can all do the same things and learn at the same time, I will have some mini instructions to follow which will help you along the path – think of this as a free PowerCLI course !

We will start off slow and then I will ask you to do a few things on your own, just to keep you awake.

Hopefully it will go down without a hitch, if you are unable to bring your laptop don’t worry I will try and put you in a group with other people so we can all observe and work together.

See you on Thursday and please remember your laptop !

Goodbye Virtu-Al – Hello Community

This may not be news to some of you as I have mentioned it at both the Dutch VMUG and the London VMUG but anyway, if you were not lucky enough to make it to these because you live in a far away place then please read on…

The Virtu-Al PowerPack is no more – gone, dead and buried – RIP

However, the “VMware Community PowerPack” has arrived ! Yes it is a rename but also there is new content and a whole lot more to come, to give this the justice it needs I have created a landing page for the PowerPack at the top of my site under featured scripts or click here.

On the landing page you can see how to download it, a video showing how to install it and also how you can get involved in making it even more useful – Come on people we are all managing the same VMware software here !

Don’t worry if you don’t have scripting skills, you can still get involved !

And with great people like the below already adding content it is destine for great things !

image

Head over to the landing page http://www.virtu-al.net/featured-scripts/vmware-powerpack/ and check out the “VMware Community PowerPack” now !

Why vEcoShell or PowerGUI makes sense

A little while back I started a PowerPack which could be used in either PowerGUI or vEcoShell – the application formerly known as “The Virtualisation EcoShell or VESI, my PowerPack was a collection of the most used scripts from my site all laid out in a nice GUI format.

Now why would you put a GUI back on top of the scripting, lets think about this…

Continue reading

We’re writing a book

PowerCLI Some of you might be interested to know, Alan and Luc are writing a PowerCLI book.

We don’t have many more details at the moment but wanted to let you know, as we are both very excited (and nervous by the amount of work) about this project.

As you know we both live and breathe PowerCLI. And we want to share our knowledge to help others achieve the level of PowerCLI automation we both know is possible.

One thing you can expect from this book is a practical approach with examples galore, we aim to cover most of the common configuration/troubleshooting and reporting areas with easy to understand examples and explanations.

To answer some of your questions:

Q: What’s the title ?
A: Well, in the end we went for “VMware vSphere PowerCLI Reference: Automating vSphere Administration

Q: Why ?
A: We’re both crazy enough to think we can do this.

Q: When ?
A: Our publisher, Sybex, targets 2011 Q1

Q: What ?
A: Expect a practical, down-to-earth approach. We’re going to show you how you can manage all aspects of your vSphere environment with PowerCLI.

Q: Who are these guys ?
A: Alan, who recently joined EMC’s vSpecialist army, is well-known from his Virtu-Al blog, his UK VMUG appearances, as a co-host of the Get-Scripting podcasts and as the winner of the recent Script-O-Mania contest.
Luc, aka LucD, is known from the PowerCLI Community, his LucD notes blog, his Dutch VMUG and VMworld appearances and as the winner of the first PowerCLI Scripting contest.

Q: Where do these guys live ?
A: Alan, contrary to some rumours, is an English guy and lives in Wiltshire, UK.
Luc lives in Belgium and works in the Netherlands. The best of both worlds 😉

Incorrectly named VMs

I was recently contacted via my blog and asked if there was a way to find the VMs which are not named in vCenter the same as they are in Active Directory or their hostname, the person contacting me had explained that someone had “accidently” renamed a number of VMs and when there was an issue with the windows VM they were unable to find it as the name of the VM did not relate to the hostname in any way.

The quick way to find the VM was easy enough, we can easily find the VM with this single one-liner:

Get-VM | Where { $_.Guest.HostName -match "HostnameOfVM"} | Select Name, @{N="Hostname";E={$_.Guest.Hostname}}

If you replace “HostnameOfVM” in the above example with the hostname you should get the correct results back showing the name and the Hostname of the VM.

With this in mind I expanded the above one-liner a little to check your vCenter for each VM which may have a VM name which is different to the hostname, now obviously this depends on if you name the VMs with the hostname or the FQDN so I added an option for both.

If you name your VM’s with the FQDN like MyVM.MyDomain.Com rather than just the hostname (MyVM) then simply set the $IncludeFQDN to $true rather than the preset $false.

As it stands at the moment, the below script will tell you about the VMs which are not named correctly and it will also tell you that it would have changed the name, that’s because this script is currently in “Whatif” mode, this mode means it will tell you if it was going to make a change and not actually make the change.  I would run the script as it was and if you are happy with the results simply remove the –whatif which is located after the Set-VM cmdlet, this will then enable the cmdlet to set the name of the VM back to the correct name.

Connect-VIServer MyvCenterSRV
# Specify if your virtual machine names include the FQDN
$IncludeFQDN = $false

Get-VM | Where { $_.PowerState -eq "PoweredOn" } | Foreach {
    If ($IncludeFQDN) {
		$Name = $_.Guest.Hostname
	} Else {
		$Name = (([string]$_.Guest.HostName).Split("."))[0]
	}
    If ($_.Name -ne $Name) {
        If ($_.Guest.Hostname) {
            Write "VM name '$($_.Name)' is not the same as the hostname $Name"
			Set-VM $_.Name -Name $Name -whatif
        } Else {
            Write "Unable to read hostname for $($_.Name) - No VMTools ?"
        }
    } 
}

A gentle reminder that whilst this may rename the VM name correctly it will obviously not touch the name of the folder on the datastore, if the name was not correct in the first place then your folder name will be incorrect which is an entirely different issue (picked up by my vCheck script), this can of course be resolved whilst the VM is powered on by performing a storage vmotion to another datastore, a SVMotion renames the folder and files to the correctly named entities.

PowerShell / PowerCLI / VESI & the Dutch VMUG

You may have noticed a distinct lack of posts from me recently, I have been on holiday, I had a great time staying in Belgium and The Netherlands, a fantastic country which I would recommend to anyone thinking about travelling in northern Europe, not just for the red lights or “space cakes” either !

Whilst preparing for my trip I heard that the famous “Dutch VMUG” was having a PowerCLI / VESI event, now I know I was on holiday but it would have been rude to pass within an hour of the area and not attend 😉  and I was glad I did.

Having presented at a few VMUGS now I was very impressed at how organised the Dutch VMUG members really are, the presentations were submitted before hand and everything was set for the date well in advance, there were some real superstars presenting too, Armin van Lieshout, Arne Fokkema and Viktor van den Berg.

Continue reading

vCheck v5

That’s right, its finally here, vCheck v5 has arrived !

If you have been using previous versions of this report then its time to update, I have added lots of cool new features and checks which make this report (even if I do say so) awesome !

Some of the highlighted features of v5 are:

Comments

Each section now has comments telling you why I think it may be an issue, there are often links to blog posts and useful information for further reading, an example is below:

image

Obviously for the experts among you these comments can easily be removed in the script by changing the $comments = $true to $false

Automatic searching for log warnings

There is now a handy link to both the VMware KB site and Google which will automatically search for the errors found on these sites, no longer do you have a reason for not investigating those errors !

image

Multiple new checks

There are so many new checks that I have now created a dedicated page on my site for this script which lists some basic information, this will of course change over time as more detail is needed and I hope to shoot some video soon showing how to change some of the key areas.

To access the page click the “Featured Scripts” area above and select “vCheck (Daily Report)” or click here.

image

Thanks

I have been bugging various people to help me with this script, whether it be for information or html help, thanks to everyone who helped me out and also to the beta testers.

To mention a few of the people specifically, thanks goes to:

Raphael Schitz – As always he has contributed some great checks for v5 and thought of areas I would never have.  Amazing job my friend.

Duncan Epping – I have bothered him more than once for clarification on the way things work, cheers mate.

Andy Grant – He did a great job helping me tidy up my HTML and add new areas.

The beta testers – you know who you are !

Sorry if I missed anyone !

Dell ESXi Management

Unlike the traditional ESX software, the ESXi software does not have a service console. It helps reduce the installation footprint of the software and can allow the hypervisor to be directly installed on the system’s internal flash storage or a USB key.

At the moment I am investigating moving to ESXi from ESX, after resolving the DSET issue I was then faced with the management of the ESXi hosts, currently the full fat ESX hosts have the Dell open management agent installed on them and SNMP configured, this allows the Dell management server to keep track of the underlying hardware and report any hardware issues or firmware updates.

But what happens with ESXi 4.0 and the removal of the service console ?

Earlier with ESXi 3.5, OpenManage component were integrated with the downloadable Dell ESX3i ISO image
but from ESXi 4.0 onwards, VMware introduced a new concept called vSphere Installation Bundle (VIB), this allows the end users to download VIB files and install it directly into ESXi 4.0. Dell are now posting their OpenManage component as a VIB on support.dell.com.

To help reduce the system footprint and to simplify deployment, the ESXi software does not have a traditional service console management interface where Dell OpenManage agents are installed. Instead, to provide the required hardware manageability, VMware has incorporated the standard Common Information Model (CIM) management profiles into the ESXi software.

Continue reading