Hyper-V Integration Services – Where Are We Today?

___________________________________________________________________________________________________________________________

IMPORTANT ANNOUNCEMENT FOR OUR READERS!

AskPFEPlat is in the process of a transformation to the new Core Infrastructure and Security TechCommunity, and will be moving by the end of March 2019 to our new home at https://aka.ms/CISTechComm (hosted at https://techcommunity.microsoft.com). Please bear with us while we are still under construction!

We will continue bringing you the same great content, from the same great contributors, on our new platform. Until then, you can access our new content on either https://aka.ms/askpfeplat as you do today, or at our new site https://aka.ms/CISTechComm. Please feel free to update your bookmarks accordingly!

Why are we doing this? Simple really; we are looking to expand our team internally in order to provide you even more great content, as well as take on a more proactive role in the future with our readers (more to come on that later)! Since our team encompasses many more roles than Premier Field Engineers these days, we felt it was also time we reflected that initial expansion.

If you have never visited the TechCommunity site, it can be found at https://techcommunity.microsoft.com. On the TechCommunity site, you will find numerous technical communities across many topics, which include discussion areas, along with blog content.

NOTE: In addition to the AskPFEPlat-to-Core Infrastructure and Security transformation, Premier Field Engineers from all technology areas will be working together to expand the TechCommunity site even further, joining together in the technology agnostic Premier Field Engineering TechCommunity (along with Core Infrastructure and Security), which can be found at https://aka.ms/PFETechComm!

As always, thank you for continuing to read the Core Infrastructure and Security (AskPFEPlat) blog, and we look forward to providing you more great content well into the future!

__________________________________________________________________________________________________________________________

Hyper-V Integration Services provide critical functionality to Guests (virtual machines) running on Microsoft’s virtualization platform (Hyper-V). For the most part, virtual machines run in an isolated environment on the Hyper-V host. However, there is a high-speed communications channel between the Guest and the Host that allows the Guest to take advantage of Host-side services. If you who have been working with Hyper-V since its initial release you may recognize this architecture diagram –


As seen in the diagram, the Virtualization Service Client (VSC) running in a Guest communicates with the Virtualization Service Provider (VSP) running in the Host over a communications channel called the Virtual Machine BUS (VMBUS). The Integration Services available to virtual machines today are shown here:


Integration Services are enabled in the Virtual Machine settings in Hyper-V Manager or by using the PowerShell cmdlet Enable-VMIntegrationService. These correspond to services running both in the virtual machine (VSC) itself and in the Host (VSP).

To ensure the communication flow between the Guest and the Host is as efficient as possible, Integration Services may need to be periodically updated. It has always been a Microsoft ‘best practice’ to keep Integration Services updated to ensure the functionality in the Guest is matched with that in the Host. There are several ways to accomplish this including custom scripting, using System Center Configuration Manager (SCCM), using System Center Virtual Machine Manger (SCVMM), and mounting the vmguest.iso file on the Host in the virtual DVD drive in the Guest (Windows only Guests.)


Linux Guests use a separate LIS (Linux Integration Services) package. After installing the latest package, you can verify the version for the communications channel (VMBUS):


You can also list out the Integration Services and other devices connecting over the communications channel:


Note: The versioning shown here for LIS is the result of installing LIS v4.2 in a CentOS 7 virtual machine.

More detailed information related to the capabilities of Linux Integrations Services can be found here.

With the release of Windows Server 2016, updating Integration Services in Windows Guests has changed and will be primarily by way of Windows Update (WU) unless otherwise stated here. Up until very recently, this process had not been working and even now has not been fully implemented for all Windows Guest operating systems. To date (as of the writing of this blog), the Integration Components for Guests running Windows Server 2012 R2 and Windows Server 2008 R2 SP1 are updated using Windows Update. The latest versions of Integration Components for the down-level Server SKUs as well as their corresponding Windows Client SKUs is shown here:


Note: Testing was conducted by deploying virtual machines, in Windows Server 2016 Hyper-V, using ISO media downloaded from a Visual Studio subscription. Each virtual machine was then stepped through the updating process using only Windows Update until it was fully patched. The latest Integration Services for Windows Server 2012 R2 and Windows Server 2008 R2 SP1 are included in KB 4072650.

Integration Services versioning (Windows) information can be obtained using a variety of scripting methods, but a quick way to do it from inside the virtual machine itself is to run one of these commands in PowerShell –


Revisiting the method for updating Integration Services on earlier versions of Hyper-V by mounting the vmguest.iso file from the Host in the virtual machines’ DVD drive, if you open any of the *.xml files in the package, you can ascertain version information –


As of this writing, versioning information is older in a vmguest.iso file as compared to what is registered in virtual machines updated by KB 4072650. This seems to indicate the vmguest.iso file on the Host (prior to Windows Server 2016\Windows 10) is no longer being updated. Instead, virtual machines are updating their Integration Services using Windows Update. Even if you run setup.exe in the ISO package, the result is an output of the version registered in the Guest.


Thanks for your attention and I hope this information was useful to you.

Charles Timon, Jr.
Senior, Premiere Field Engineer
Microsoft Corporation