File Transfer Issue From Hyper-V Host to Guest VM

Manuel Flores-Bonilla 6 Reputation points
2021-09-10T19:28:21.38+00:00

I created a guest VM hosting Centos 7 and I've noticed the PrimaryStatusDescription of the VMIntegration service, Key-value Pair Exchange, is displaying as "no contact" versus showing "ok." In addition, the time synchronization service is also displaying "The protocol version of the component installed in the virtual machine does not match the version expected by the hosting system" under SecondaryStatusDescription. This is also seen by running:

Get-VMIntegrationService –VMName "test-vm"

I've rebuilt the VM a few times times and the issue keeps repeating itself. I've disabled and enabled the services as well rebooted the VM itself but to no avail. I've asked a few colleagues and we're baffled by the issue. Is anyone familiar with this issue?

To mention, this issue in services is preventing me from doing file transfers from the host machine (Windows server 2019) to the guest VM. I was able to transfer files at one point between both but I suddenly couldn't one week and can't determine the culprit.

I read that the aforementioned SecondaryStatusDescription message could be ignored for certain OS's: https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/vm-integration-services-status-protocol-version-mismatch. As far as establishing the communication connection for the 'Key-Value Pair Exchange' service, I'm not sure how to go about it.

Hyper-V
Hyper-V
A Windows technology providing a hypervisor-based virtualization solution enabling customers to consolidate workloads onto a single server.
2,530 questions
Windows Server PowerShell
Windows Server PowerShell
Windows Server: A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.PowerShell: A family of Microsoft task automation and configuration management frameworks consisting of a command-line shell and associated scripting language.
5,354 questions
{count} votes

3 answers

Sort by: Most helpful
  1. Dave Patrick 426K Reputation points MVP
    2021-09-10T19:54:48.21+00:00

    Might check the correct integration services are available and installed.
    https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/supported-centos-and-red-hat-enterprise-linux-virtual-machines-on-hyper-v#rhelcentos-7x-series

    --please don't forget to upvote and Accept as answer if the reply is helpful--


  2. Limitless Technology 39,336 Reputation points
    2021-09-13T18:43:08.033+00:00

    Hello @Manuel Flores-Bonilla

    You can transfer files to\from Linux VM by using any SFTP client like FileZilla or WinSCP.

    You need to just enter IP of Linux server and username, password , then you can do file transfer easily (I assume you can access Linux server by SSH using putty)

    If the reply was helpful, please don’t forget to upvote or accept as answer.


  3. Limitless Technology 39,336 Reputation points
    2021-09-14T17:06:44.967+00:00

    Hello again @Manuel Flores-Bonilla

    I assume that you have already updated the Integration Services to latest versions. You can check with the cmdlet: Get-VMIntegrationService –VMName <VM names in comma separated list> | Where-Object {$_.SecondaryOperationalStatus –eq 'ProtocolMismatch'}

    To update them:
    https://support.microsoft.com/en-us/topic/hyper-v-integration-components-update-for-windows-virtual-machines-8a74ffad-576e-d5a0-5a2f-d6fb2594f990

    or
    Copy vmguest.iso from a patched host (\Windows\System32\vmguest.iso) and mount it

    I would also suggest, that in case that this machine has been migrated from Physical to Virtual, this s a non-recommended scenario, as has been proven many times to have different points of failure like you are experiencing. If that is the case, best to create a new VM from scratch.

    Last but not least, you can try to troubleshoot the services with the next cmdlets from an elevated PS console:

    1. Check the status of services: Invoke-Command –ComputerName <Hostname> -Credential <Domain><Username> -Scriptblock {Get-Service -Name vmi*}
    2. Invoke-Command –ComputerName <Hostname> -Credential <Domain><Username> -Scriptblock {Start-Service -Name <comma separated service names>}
      3.Repeat step 1

    You can also try the file transfers with the next cmdlet:
    Copy-VMFile “<Name of target Guest VM>” –SourcePath “<Path to file on host system>” –DestinationPath “<Path to new location on guest system>” –CreateFullPath –FileSource Host

    Hope this helps in your case,
    Best regards,

    0 comments No comments