How To Transfer Files Between VM and Host In Hyper-V

6

Windows 10 includes Hyper-V by default. You can enable it from “Turn Windows features on or off”. The latest version of Hyper-V does not allow transferring files between the host and the virtual machine directly. In this article, we discuss of ways to transfer files between the VM and the host easily.

There are three ways to copy or transfer files inside the VM from the host computer. One is to turn off the VM, mount the VHDX hard drive file in the host computer and copy the files to be transferred.

Second way is to create an ISO file and mount it inside the VM. Although it works if you have ISO creation software at your disposal, it requires extra effort. We are looking for a simple way to serve our purpose.

Third way is to join both, the host and the VM, to the same local area network. This can be quite easy if you are connected to a network. But if you are not connected to a network, it becomes increasingly difficult.

Creating a private network between host and guest VM

In this article, we will take the third approach but with a twist. We will create a private network between the host and VM and transfer files (or even share host drives with the VM). Just follow the steps below to make this happen:

  1. Open Hyper-V (Run –> virtmgmt.msc)
  2. From the right-hand menu, select Virtual Switch Manager.
    Hyper V Manager

    Hyper V Manager

  3. Select New Virtual network switch and select Internal as its type. Click on Create Virtual Switch button to create a new switch listing.
    New Virtual network switch

    New Virtual network switch

  4. Now open the VM settings. Under Network Adapter, select the name of the switch you just created.
    Select Network Adapter in Hyper V Settings

    Select Network Adapter in Hyper V Settings

  5. Next, we have to assign static IP addresses to the two network adapters. First go inside the VM and assign a static IP address to the network adapter.
    Assigning static IP address to the VM network controller

    Assigning static IP address to the VM network controller

  6. After this, we have to do the same for our host network adapter. Do not worry. These settings will not disturb your current network settings. If you go to Control Panel –> Network Connections, you will see a new network adapter by the name of the switch you created in step 3.
    Network Connections showing the new Virtual network switch from Hyper V

    Network Connections showing the new Virtual network switch from Hyper V

  7. Assign an IP to the network adapter.

After completing these steps, your host and guest Operating Systems will be connected to each other through a private network. You can use Remote Desktop (Run –> mstsc) to login to your VM and even change Remote Desktop Connection settings to show host drives inside the VM.

Remote Desktop Connection sharing host drives with VM

Remote Desktop Connection sharing host drives with VM

Hopefully this will resolve the problem of sharing files between the host and the guest machines permanently. There are other methods like enabling guest integration services and then transferring files through PowerShell command line but I don’t prefer those methods are they are harder to manage if we have large amounts of files to transfer. What methods do you use to transfer files between VMs and the host?

Must Read Articles:

6 Comments

  1. I was able to copy a file to a VM by enabling the VM Guest services in Hyper-V Manager (version 10.0.16299.15), using the Copy-VMFile command in PowerShell as Administrator from the host (Windows 10 Pro v1709), and then disabling VM Guest services.

  2. Wouldn’t it be easier to just set up a shared folder on the VM at that last step? And then just connect to it from the file explorer of the host using ‘\\10.0.0.2’ in the address bar or whatever you set the VM ip to be.

  3. Not being able to copy files to and from the guest operating systems in Hyper-V is due to security reasons. You can see that guest integration services are disabled by default.

    If any virus attacks the VM, there is no way that it can propagate to the host Operating System making it safe. This is really useful on Hyper-V servers where the host server should never be touched and keeps on running 24/7.

    • iTechtics Staff on

      Good question!

      After enabling Guest Integration Services in VM settings, you can use the following PowerShell command to copy one file from host to guest:
      Copy-VMFile “WinVM” –SourcePath “C:\file.txt” –DestinationPath “C:\file.txt” –CreateFullPath –FileSourceHost

Leave A Reply