Category Archives: PowerShell

Keeping up on blogs with PowerShell

Recently the top virtualization blogs were announced and updated on Eric Sieberts page here: This is a great place to check out for all sorts of virtualization links.

The great thing about this site is that it also gives us a chance to mess with the Invoke-WebRequest and Invoke-RestMethod cmdlets which allow us to read web information and manipulate it.

First lets grab the data from the site:

$Top50Bloggers = Invoke-WebRequest -Uri ""

Continue reading

Now everyone can contribute to vCheck

After making the recent changes to vCheck I was astounded by the amount of responses I received and the help that the community has put back into this script, I am constantly receiving new plugins and code fixes for the existing plugins.

In fact I receive so many that I am unable to add them back into the script and update it to the latest version as believe it or not – I have a day job and a family to entertain at night Winking smile

So what to do?

I didn’t want all these great additions getting lost and also I didn’t want duplication of people fixing the same issues all the time so I wanted an easy way for people to contribute and still have the script easily available for everyone to download and benefit from.

Continue reading

More Auto Deploy PowerCLI shortcuts

Following on from a post I created a while back which gave you a couple of new functions to use with Auto Deploy I wanted to add a few extra pieces of code which I use on a regular basis that may save people time when they are building out their image profiles or working with auto deploy:

Adding the VMware hosted software depots to your PowerCLI Session:


Listing the 5 most recent image profiles from the online depot (Thanks to Andreas Peetz):

Get-EsxImageProfile | Sort-Object -Descending -Property @{Expression={$_.Name.Substring(0,10)}},@{Expression={$_.CreationTime.Date}},Name | Select -first 5 | FT -AutoSize


List the latest image profile which includes VMTools:

Continue reading

Using Show-Command with PowerCLI

Recently when at the Western Pennsylvania VMUG I was asked by Rob Velarde if I had tried Show-Command with PowerCLI, I know that PowerCLI5.1 R2 now supports PowerShell V3 where the Show-Command cmdlet was introduced so thought I would take a look.

Looking at a cmdlets syntax can be complicated for people who are new to PowerShell and PowerCLI, the below is an example of the New-VM cmdlet…


So what does all this mean?


Continue reading

Altering VMKernel NIC MTU with PowerCLI

I was asked if it was possible to set the VMKernel Nic MTU in PowerCLI, after looking on the internet there were several people showing how to do this but some of them were very complicated, maybe this has got easier over time as with each release of PowerCLI one of the things the PowerCLI Dev team looks at is how to make things easier for the end user?

Anyway, I thought I would show my one line solutions for listing and setting the MTU for the VMKernel Nics for multiple hosts,

Listing the MTU for each VMKernel Nic


Setting the MTU to 9000 for each VMKernel Nic


The Code

Listing the MTU for each VMKernel Nic

Get-VMHost | Get-VMHostNetworkAdapter | Where { $_.GetType().Name -eq "HostVMKernelVirtualNicImpl" } | Select VMHost, Name, MTU

Or an even easier way of doing this (but you cant expand it to change the MTU easily is:

Get-VMHost | Get-VMHostNetwork | Select -ExpandProperty VirtualNic | Select VMHost, Name, MTU

Setting the MTU to 9000 for each VMKernel Nic

Get-VMHost | Get-VMHostNetworkAdapter | Where { $_.GetType().Name -eq "HostVMKernelVirtualNicImpl" } | Foreach { $_ | Set-VMHostNetworkAdapter -Mtu 9000 -Confirm:$false }

PowerShell Summit–My recorded sessions

imageRecently I was lucky enough to attend the PowerShell Summit at Microsoft HQ in Redmond, this was an awesome event which was focused on PowerShell, it included not only people who are using PowerShell but also some of the people who wrote and designed it.

There were a bunch of great sessions, all of which can be reviewed and slides downloaded here.  I was also asked to present two sessions.  I have included the recordings for these sessions below.  Thanks to Aaron Hoover for recording these.

A couple of comments which I took away from the PowerShell Summit which really surprised me where:

  • A number of people told me they had started out with PowerCLI and then worked back into PowerShell (much like myself).
  • I was surprised that 2/3 of the room when I presented were using VMware, after all this was a Microsoft Conference!

Continue reading

Automating storage with NetApp Workflow Automation

Do you wish you could automate your NetApp Storage infrastructure?

Do you wish your storage admins could give an easy to use custom interface to other areas of the business allowing them to provision or use storage however they need whilst still applying best practice and corporate policies to the configuration?

Continue reading

Relating vCloud Director to vCenter in PowerCLI

I was listening to episode 216 of the PowerScripting Podcast recently, Hal and Jonathan were talking to vCloud Director (vCD) expert Jake Robinson and “meeting expert” (listen it will make sense) Damian Karlson, it was a great show, very funny and I highly recommend you listen here:

Anyway, they were talking about relating vCD objects to vCenter objects, on the show they said it couldn’t be done without matching an ID and writing a custom function, this used to be the case but now I wanted to show a few cool things from PowerCLI which allows us to use a parameter called –RelatedObject to take away all the hard work from the matching IDs, Datastore IDs, Network IDs etc. Continue reading

PowerCLI 5.1 R2 Released

PowerCLIVersionVMware have just released PowerCLI 5.1 R2 and with it are the long awaiting cmdlets to work with VDS!

I worked with these a little and although VDS are not 100% fully covered in this release the cmdlets are certainly useful for most of the things I needed to do and they opened up VDS with the .extensiondata property for the rest of the things I wanted to play with.

Two of the cooler cmdlets where the Export-VDSwitch and New-VDSwitch –backupfile which can be used with 5.1 and the new VDS features to backup the VDS into a simple zip file and re-import it when needed.

I have included the new cmdlets and some examples from the help file below.

As well as the VDS cmdlets I am also happy that VMware now supports PowerShell v3 and vCloud Director 5.1 in both their admin version of PowerCLI and their Tenant version, this opens up vCD to automate some of the cooler new features of VCD and also enable the enhancements made by Microsoft in PowerShell v3.

Download it now. Continue reading

Checking Domain Controllers for Secure LDAP connections with PowerShell

imageI wanted to blog this quick bit of PowerShell as I could not find it anywhere else on the web whilst searching.

I needed to check the connected domain on a machine to see if SSL was configured and enabled for LDAP, the following script checks to see if SSL is enabled on one of the domain controllers in the current domain and then tries to make a connection to see if it works.

This can of course be altered to list and check all domain controllers easy enough:

$dc = [System.DirectoryServices.ActiveDirectory.Domain]::getCurrentDomain().DomainControllers | Select -First 1
$LDAPS = [ADSI]"LDAP://$($"
try {
	$Connection = [adsi]($LDAPS)
} Catch {
If ($Connection.Path) {
	Write-Host "Active Directory server correctly configured for SSL, test connection to $($LDAPS.Path) completed."
} Else {
	Write-Host "Active Directory server not configured for SSL, test connection to LDAP://$($ did not work."