FAQ: Windows Server 2016 and Hyper-V Integration Services


I’m frequently receiving questions about what’s wrong with Windows Server 2016 and how to manage Hyper-V IS. I’d like to discuss it in a FAQ manner. If your question is not answered, just feel free to leave a comment

Where is the integration services setup disk (VmGuest.iso)?

All of us remember times when we had to insert ISO which was available on Hyper-V host , run it on each VMs and check it’s version from time to time for keeping them up-to-date (yes, vmguest.iso was updated via Windows Update).

The process of Hyper-V IS upgrading has been changed since Windows Server 2016. Now VMs get IS updates directly from Windows Update (WU). ISO is not included and it’s not needed anymore.

It’s completely true if you have new OS inside VMs (Windows 2012 R2/Windows 8.1 and later). Hyper-V IS automatically get updates from WU in these OSes. No actions required.

We have another picture for older OSes (Windows Server 2012/Windows 8 and older). For such OSes, you need to verify that Data Exchange Service (DES) is turned on and running.

DES provides shared registry values (HostSystemOSMajor and HostSystemOSMinor under the hive HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters) between host and VMs for determining IS applicability. These values should be existed in VM in order to get IS updates from WU. If DES has never been enabled on VMs – IS won’t be provided.

hypervregs

Hack: you can edit/add these parameters and set values manually (of course, it’s unsupported)

Example of outdated IS in VM with WS2012R2 on WS2016 host (DES provided values from VM, compared them with host’s and they are not the same):

image

Linux Guests? Built-In or  Linux Integration Services are required

Unsupported Windows Server 2003? Integration services setup disk is required. Can be copied from WS2012R2 (download link is below). Better option: plan migration to newer OS

How to install IS manually?

Use this KB if DES can’t be enabled or WU is unavailable:

Hyper-V integration components update for Windows virtual machines that are running on a Windows 10 or Windows Server 2016-based host (IS  ver. 6.3.9600.17903) + IS update for Windows Server Guest OSes (IS ver. 6.3.9600.18080)

Update: IS was updated by the June’s month rollup to version 6.3.9600.18692

Note: To install this update, you must have April 2014, update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 (2919355) installed in Windows 8.1. Or, install Service Pack 1 for Windows 7.

To install IS (CAB-file) use PowerShell:

Add-WindowsPackage -PackagePath pathtocab -Online

If you want to do offline VM servicing : read guide from Sarah Cooley

TIP: IS with later version is available from uploaded VMGuest.iso below (use it to simplify overall process)

Where can I find ISO if I haven’t got Windows Server 2012 R2 installed?

I’ve uploaded Hyper-V Integrations Services ISO for you. It was taken from Windows Server 2012 R2 (up-to-date, 02/20/17 . IS version: 6.3.9600.18398). You can use this ISO to install Integration Services in “prehistoric” guest OSes (but again..migration to newer OS is better option for such VMs) on Windows Server 2016 or with hosts running on Windows 2012 R2/Windows 8.0/8.1 Download link for VMGuest.ISO

Update: here is a link for the latest Hyper-V Integration Services (version 6.3.9600.18692), taken from Server 2012 R2 + November updates: VMGuest.ISO (November, 2017)

Update: if you are running 2008 R2/2012R2 guest VMs on Windows 10/Server 2012R2/2016 hosts, there is a special update available at KB4072650 (6.3.9600.18907) 

I’m querying Integration Services version from PowerShell but it shows me 0 for all VMs. What’s wrong?

I’ve provided example of outdated IS in a VM SQL01 above. Cluster validation report generates a warning. PowerShell shows 0 in IntegrationServicesVersion

By default, PowerShell loads Hyper-V module with version 2. I tried to remove that module, import one with 1.1 version and query again IS versions. In that case, I received actual IS versions and  “Update required”  in IntegrationServicesState. It seems like something wrong with Hyper-V 2.0 module. Waiting for official fixes or confirmations.

hyperv

Update: this behavior is normal. VM support is based on the having critical updates and reporting IS version is no longer needed.

17 thoughts on “FAQ: Windows Server 2016 and Hyper-V Integration Services”

    1. They are also covered here. Please read carefully “Windows Server 2012/Windows 8 and older). For such OSes, you need to verify that Data Exchange Service (DES) is turned on and running”. If guest OS is unsupported (WS2003, for instance) on WS2016 you should use IC from previous WS at least.

  1. Hi,
    So… Rolling cluster upgrade from 2012R2 to 2016 – VM Integration Tools were on the highest 6.3.960.18398 at the time. Cluster functional level upgraded from 8 to 9 once the last 2012 host removed, VMs upgraded to Version 8.
    From this point on, there must still be some form of version control for the Integration tools within the guest? It states it’s managed by Windows Update – to be clear, is that on the Guest OS or the host?
    Is it safe to assume that with the host properly patched, and the VM on version 9 – that all of the functionality is being delivered to the VM or is there still some background dependency on Integration tools within the guest?

    1. Hi, Eliot!

      You are asking the right questions.

      Well, the main goal was to simplify overall management tasks. Actually, we don’t need to care about IS versions anymore (ideally, of course, If we have supported OSes inside and WU works on them). Therefore IS version indicator has also been removed from cluadmin.msc and hyper-v manager. If you’d like to manage and frequently check IS versions – one simple workaround: basic PS script that uses Hyper-V 1.1 PS module to output IS versions or Test-Cluster cmdlet that shows them “correctly” as well. There are no official tools for IS version check yet (in fact, we can retrieve some useful data via WU APIs and etc).

      WU get updates from VM via public update catalog or WSUS, for example. So, you need to just verify that required connection from VMs to updates sources established. If they are offline, do manual installation.

  2. I am having issues with some machines sometimes not shutting down/restarting properly, they stick with the status of stopping.

    It has been suggested this could be a IS version issue.

    The OS’s are Windows 10/Windows 2012 R2/Windows 2008 R2 and possibly others.

    I’d noted before that the PowerShell script returned 0 for the version, so how can I check that these machines (those that should be at least) have correctly received the latest IS from Windows Update?

    If they haven’t, how do I find what the latest version is, so I can locate the CAB and install manually as per your guide?

    1. Hi, Tom!
      Have you tried Hyper-V PS module 1.1 to get IS versions? + HKLM\Software\Microsoft\VirtualMachine
      If your environment is not isolated use WU for IS updating or uploaded ISO for older OS’s. All other links are also provided above. No changes for now.

  3. How about updating IS when fully relying on SCCM for patch management? Which update needs to be added in the Software Update Group?

    For Win2012R2 VMs the 06/2017 Preview of Monthly Rollup KB4022720 should have the latest IS. We don’t deploy the previews though, only the ‘real’ Monthly Rollups. So we should be covered by the 07/2017 Rollup KB4025336. And as the rollups are cumulative any of the more recent rollups should do.
    However, when I check one of our Win2012R2 VMs I see icsvc.dll is still v6.3.9600.17415, while the server has been patched on a monthly basis since its provisioning. I had expected IS would be on v6.3.9600.18692, but apparently it’s not. Any idea why not?
    When I manually install the cab from the vmguest.iso from one of our Win2012R2 hosts, IS updates to 6.3.9600.18692 just fine by the way.

    Secondly, for Win2012 and Win2008R2 I don’t see the same IS update in the changelog of their respective 06/2017 preview rollups, nor did I find it in more recent rollups. So which update do I need for these older OS’s?

    I’m a bit reluctant to create an SCCM package/application that runs Add-WindowsPackage -Online -PackagePath “C:\path\package.cab”. I’d prefer to simply rely on our regular patch mechanism. Definatelly cause we’re fasing out our Win2012R2 Hyper-V hosts and moving to Win2016, which doesn’t have the vmguest.iso to get the latest cab from.

    1. Hi, Nico! You are asking the right question…and,honestly, I have the same one. As we currently don’t have any IDes of updates, it could be quite impossible to identify IS updates. MS position is simple – just keep your OSes up-to-date. However, I’m having an internal discussion about this lack and will post any updates once I get something new.

      //I had expected IS would be on v6.3.9600.18692, but apparently it’s not. Any idea why not?
      1. you can download the latest ISes from my blog. The link is in the post. I keep it updated.
      2. I assume the wrong updates are applied to the host. Check it twice. Have you restarted the host?

      //for Win2012 and Win2008R2 I don’t see the same IS update in the changelog of their respective 06/2017 preview rollups. So which update do I need for these older OS’s?
      If you are talking about VMs running on WS2016 hosts, they will use DES to get IS. If hosts on which old VMs are running is 2012 R2/2012, install IS from vmguest.iso for such VMs.

  4. There is a newer version of integration services 6.3.9600.18907 available for WS 2008 R2. Where can I find vmguest.iso with the latest version of binaries??

  5. Hello,

    I’ve already updated my Windows 2008 R2 server using KB4072650 via WU but im still getting update required. Do I still need to install the prerequisite prior to KB4072650?
    My host server is running Windows 2016.

    thanks,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s