Copy Files and Communicate with VMs on Hyper-V: Challenges

Hyper-V users face challenges copying files and communicate between guest VMs and host machines, unlike simpler processes in VirtualPC and VMWare Workstation

Those of us who use Hyper-V for development know of the challenge we face when we try to copy files or talk to the guest virtual machine or have the guest VM access the host machine. It’s frustrating because it was so easy to do in VirtualPC or VMWare Workstation as we had the easy copy files to and from the desktop just like we can do with Remote Desktop.

There is a way around this though… it’s a simple networking trick. Now, I’m a bit of a networking-idiot and had to get Todd Baginski and Maurice Prather to help me with this (so big shout out to them), but it’s actually quite simple and I after explaining it to to quite a few people, I’m documenting it so I have a URL to point to where others can do it on their own. Hopefully this helps you.

Info: Disclaimer
I fully recognize there are other ways to achieve this. I’m sure there will be plenty of comments from people who have their own method… that’s just fine. Use whatever method works for you… for me, this method works great and it’s what I use.

Overview

Basically what you’re going to do is create a new virtual network on your Hyper-V machine, add a new NIC to your VMs and then put them on the same network.

Step 1 – Create a new virtual network

The first thing you need to do is create a new virtual network. From within Hyper-V, select Virtual Network Settings. Create a new INTERNAL network and leave all the default options. I like to call my virtual network INTERNAL.

What this does is create a new network within Hyper-V and creates a virtual NIC adapter on the host machine.

Step 2 – Configure the NIC on the host machine

With the virtual NIC created on the host, you want to change his IP settings. I put mine on a network I know I never use:

  • IP: 192.168.1.20
  • Subnet: 255.255.255.0

Leave everything else blank / default. The other thing I do is rename this NIC adapter to Hyper-V INTERNAL to make it easy to find later.

At this point the host machine is set up and ready for action!

Step 3 – Add a new NIC on the guest machine

Now it’s time to set up the guest. First, shut down the guest machine so that it’s not running or in a saved state.

Then, modify the settings of the virtual machine (right-click the virtual machine and pick settings). In the settings dialog select Add New Hardware at the top of the left-panel and select the network you created in step 1 above. Leave all settings as the default options.

With a NIC added to the VM, start the VM up.

Step 4 – Configure NIC on the VM

When the VM is turned on, you can now configure the new network adapter. Change his IP settings to put him on the same subnet but with a different IP than the host. For instance:

  • IP: 192.168.1.21
  • Subnet: 255.255.255.0

Again, leave everything else blank. Also, just as above, I like to rename this NIC to make it easier to find in the future.

If you already have multiple NICs listed, it’s hard to figure out which one you need to modify as they all show the same adapter type. The way I figure out which is the correct one is change the one that has the highest number (like Local Network Connection 5) & test. If that doesn’t work, I undo my changes and try another one and just follow the process of elimination. How do you know if it works? See step 5 below.
At times I’ve had to recycle the NIC to have the changes take effect. You can do this by simply disabling and then enabling the NIC you just changed._

Step 5 – Test file access & RDP

Now you’re likely good to go! There are two ways I utilize this:

  • File system – from either machine you open Windows Explorer and type \192.168.1.[###]\C$ where the [###] is the IP of the machine you’re trying to reach. Be patient as it can take a minute to come back and prompt you for credentials.
  • Remote Desktop – this is my preferred way of working with the VMs. From the host I use Remote Desktop, connecting using the IP we added to the VM, to get a full screen mode with richer copy/paste between the host and the guest OS.

Hope this helps someone!

Andrew Connell
Developer & Chief Course Artisan, Voitanos LLC. | Microsoft MVP
Written by Andrew Connell

Andrew Connell is a full stack developer who focuses on Microsoft Azure & Microsoft 365. He’s a 20+ year recipient of Microsoft’s MVP award and has helped thousands of developers through the various courses he’s authored & taught. Andrew’s mission is to help web developers become experts in the Microsoft 365 ecosystem, so they can become irreplaceable in their organization.

Share & Comment