Tag Archives: PowerCLI

Simple Host Time Information

Today I was asked if it was possible to pull certain time information from a VMware Host to ensure all hosts were not only using the same NTP server but also the same timezone and that they have the same time.  Obviously this is something that is very important for a number of reasons including security and auditing.

I sent the following one-liner (broken up here into several for ease of reading) and it was just what was needed.

Get-VMHost | Sort Name | Select Name, `
	@{N="NTPServer";E={$_ |Get-VMHostNtpServer}}, `
	Timezone, `
	@{N="CurrentTime";E={(Get-View $_.ExtensionData.ConfigManager.DateTimeSystem) | Foreach {$_.QueryDateTime().ToLocalTime()}}}, `
	@{N="ServiceRunning";E={(Get-VmHostService -VMHost $_ |Where-Object {$_.key-eq "ntpd"}).Running}} `
	| Format-Table -AutoSize

Sample output:


My VMworld 2013 San Francisco Schedule


I’m looking forward to VMworld as always, if you haven’t registered yet then make sure you watch my video on why you should.

Personally its going to be a busy one for me, as you can see from my below schedule but this is all amazing stuff and I cant wait for VMworld to begin.  If your interested in any of the items below be sure to add them to your schedule builder and make sure you say Hi and chat to me about automation and integration in your organization and how I can help you make sure VMware is focused on what you need.

My Sessions Continue reading

Updating from ESXi 5.1 to ESXi 5.1 Update1 with PowerCLI

Recently I was asked by someone how they could do rolling automated updates from ESXi 5.1 to ESX 5.1 Update 1 in their environment using PowerCLI, obviously there are a number of ways to achieve this and William Lam did a great job of showing these in this blog including a piece of sample PowerCLI code.

I figured I would share the code I used to perform this so that others may gain from this experience…

Continue reading

Disabling Netflow with PowerCLI

Today I was asked if there was a script to disable Netflow on a VDPortgroup, the below was a couple of quick and dirty scripts to first of all list all VDPortgroups and if they have Netflow enabled, the second was to disable Netflow for a VDPortgroup or a number of VDPortgroups.

This may help with a known issue on ESXi 5.1 when Netflow is enabled: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2042370

Continue reading

All versions of vCheck now on Github

Following my last post where I added vCheck for vSphere onto Github so everyone could get involved I was overwhelmed with the number of additions, fixes and edits that had been made by many members of the community, this will really make this script even better than before and a real community effort.

I have now moved all the other vChecks to Github for people to make changes in the same way, you can find these below or from the vCheck page on the menu of this site.

Currently there is a vCheck report for each of the following areas:

Download Link Example Output Page
vCheck for vSphere Click here
vCheck for Exchange 2010 Click here
vCheck for vCD Coming soon
vCheck for SCVMM Click here
vCD Audit script Click here

If you don’t want to get involved by editing the code remember you can also log issues or add feature requests on the Github site by using the Issues menu on the right hand side.

Thanks to everyone for their contributions and remember, if you have used the vCheck framework for your report of anything other than the above, please do get in contact so we can feed it back into the community.

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:

Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

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

Reporting on RPO violations from vSphere Replication

vSphere Replication was introduced with vSphere 5.0 and SRM 5.0 providing a way for customers without the ability to leverage storage array replication to utilize Site Recovery Manager (SRM) within their environments as their disaster recovery solution.

With the release of vSphere 5.1 vSphere Replication also became available as a standalone replication solution included with Essentials Plus and higher vSphere license editions. Customers now have the option of deploy vSphere Replication on its own to provide basic per-VM replication for use cases where SRM’s advanced DR orchestration capabilities were not applicable.

As adoption of vSphere Replication is growing amongst the vSphere 5.1 customer base so has the number of requests for ideas, hints and tips on what kind of reporting could be added to provide usage information for the various events that could occur amongst a collection of replicated VM’s.

Some examples would be:

  • highlight when a given VM violates its RPO
  • detect when the violated RPO state is restored
  • compute the time duration for the RPO violation
  • collate the total amount of data replicated for a given VM over a given time period

The number of customers asking for this kind of information led to this blog being written and the scripts being created in conjunction with Lee Dilworth who is a Principal Systems Engineer with VMware and SRM expert.

In this initial article we have included some scripts that will provide the 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 }