Use PowerShell to Check Integration Services Version in Hyper-V

When you’re using Hyper-V, you always want your Virtual Machine to have the latest version of the Integration Components installed.  After upgrading my lab cluster to Windows Server 2012 R2, I needed to check all of my VM’s to see that they had the latest version of the Integration Components installed.

First, I started with the Get-VM cmdlet.

01-use_powershell_to_check_integration_comp_versionHelpful, but still missing some information that I need.  Adding Format-Table gets me what I’m looking for:

02-use_powershell_to_check_integration_comp_versionIf you’re running a standalone Hyper-V server, you’re done.  But in my case, this is a Failover Cluster.  Depending on the number of nodes in the cluster, running this against all those nodes could present some issues.  If VM’s are Live Migrating between hosts, you could miss some VM’s.  It could also mean having to pull all of the names of the cluster nodes also.  Instead, we’re going to use some of the Failover Clustering cmdlets:

03-use_powershell_to_check_integration_comp_versionAs you can see, the Get-ClusterGroup cmdlet gives me all of my VM’s, but doesn’t include the Integration Services versions that I need.   So how about we pipe it through Get-VM?


Oops!  It appears that our list included “Available Storage” and “Cluster Group.”  The Get-VM cmdlet wasn’t a big fan of that, so let’s just remove them from the pipeline:


And here’s our list of VM’s with their Integration Components version.  If we want to make things simpler, we can strip out the VM’s with the latest version:


Now we just need to wait until the next maintenance window to update the Integration Components to the latest version!


3 thoughts on “Use PowerShell to Check Integration Services Version in Hyper-V

  1. Jason Eaby July 4, 2016 / 1:57 PM

    I realize that this post is almost three years old, but to clean up the PowerShell a bit, you could write it like this:

    Get-ClusterGroup | ? {$_.GroupType -eq ‘VirtualMachine’} | Get-VM | FT Name, IntegrationServicesVersion

    This requires one match criteria that shouldn’t change instead of an ‘and’ statement with multiple criteria that may change or expand over time.

    • Kyle Beckman July 12, 2016 / 9:35 PM


  2. Vijay August 26, 2016 / 7:45 AM

    Thank you Good Sir..!

Leave a Reply