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!


Kyle Beckman

Kyle Beckman

Kyle is a Systems Administrator with 15+ years of experience. He currently works in Higher Education supporting everything from smartphones to desktop PC's to Hyper-V Failover Clusters. (If it has a IP address, he probably supports it!) He has also worked in Small Business IT consulting supporting a wide variety of businesses and non-profit organizations.

Kyle is also the Vice President of the Atlanta Windows Infrastructure and Virtualization User Group (WINVUG).You can find additional articles he's written on
Kyle Beckman


Add a Comment
  1. 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.

    1. Thanks!

  2. Thank you Good Sir..!

Leave a Reply

Your email address will not be published. Required fields are marked *