<Update 6/7/2010 with feedback from Kelly Jones on network adapters />
Configuring Remote Desktop (RDP) from a host Hyper-V machine to a guest virtual machine can be tricky, so this post is dedicated to the issues and resolution steps I went through to allow RDP. Cutting to the point, below are the things to look for followed by some explanation about my scenario if you care to read. This is not an exhaustive list of what is required, just the items that were causing problems for my particular scenario.
Requirements
- Allow Remote Desktop Connections in guest OS.
- The network adapter type must allow communication with host machine (e.g. use an “Internal” or “External” virtual adapter.)
- If running Server 2008 R2 on guest, network discovery mode must be turned on.
- If running Server 2008 R2 on guest, the services supporting network discovery mode must be running:– DNS Client – Function Discovery Resource Publication
– SSDP Discovery
– UPnP Device Host
My Environment
A quick word about my environment. I am running Windows Server 2008 R2 with Hyper V on my laptop and numerous guest VMs running Windows Server 2003 R2 or Windows Server 2008 R2. I run a domain controller VM and then 1 or 2 SharePoint servers depending on my work needs. I’ve found this setup to work well except when it comes to the display window for my VMs.
The Issue
Ever since I began running Hyper-V I haven’t been able to RDP to my guest VMs which means the resolution for my connection windows ha been limited to what the native Hyper-V connections allow. During personal use I can put the resolution up to 1152 x 864, but during presentations I am usually limited to a measly 800 x 600. That is until today when I decided to fully investigate why I couldn’t connect via RDP.
First a thank you to John Ross (@johnrossjr), Christina Wheeler (@cwheeler76) and Clayton Cobb (@warrtalon) for various suggestions while I was researching tonight. As it turns out I had not 1, not 2, but 3 items preventing me from using RDP. Let’s dig into the requirements above.
Allow RDP Connection
This item I had previously taken care of, but it bears repeating because by default Windows Server 2008 R2 does not allow RDP connections. Change the setting from “Don’t allow…” to whichever “Allow connections…” setting suits your needs. I chose the less secure option as this is just my dev laptop.
Network Adapter Type
When I originally configured my VMs I configured each to use 2 network adapters: one using the physical ethernet adapter for internet use and a virtual private adapter for communication between the VMs. The connection for the ethernet adapter is an “”External” adapter and (as my co-worker Kelly Jones pointed out in comments below) does allow connections between host and guest. After he pointed this out though I realized that my ethernet adapter is not always reliably enabled (power cord not in disables NIC.) As such I need a secondary adapter that will always be on to connect the host and guest. The virtual private adapter I had allowed communication ONLY between the VMs and not to my host. There is a third option “Internal” which allows communication between VMs as well as to the host. After finding out this distinction I promptly created an Internal network adapter and assigned that to my VMs.
Turn On Network Discovery
Seems like a pretty common sense thing, but in order to allow remote desktop connections the target computer must able to be found by the source computer (explained here.) One of the settings that controls if a computer can be found on the network is aptly named Network Discovery. By default Windows Server 2008 R2 turns Network Discovery off for security purposes. To enable it open up the Network and Sharing Center. Click “Change Advanced Sharing Settings” on the left. On the following screen select “Turn on network discovery” for the currently used profile and click Save Settings. You may notice though that your selection to turn on network discovery doesn’t save. If this is the case then you most likely don’t have the supporting services running (as was my case.)
Network Discovery Supporting Services
There are a total of 4 services (listed again below) that need to be running before you can turn on network discovery (explained here.) The below images highlight these services. In my guest VM I found that I had DNS Client already running while the other 3 were disabled. I set them all to enabled and started the ones that were stopped. After this change I returned to the Sharing settings screen and found that Network Discovery was turned on. I’m not sure whether this was picking up my attempt to turn it on previously or if starting those services turned it on. Either way the end result was a success.
– DNS Client
– Function Discovery Resource Publication
– SSDP Discovery
– UPnP Device Host
Before and After Results
The first image is the smaller square shaped viewing window used by the Hyper-V native connection. The second is the full-screen RDP connection in all its widescreen glory.
Conclusion
Over the past few months I’ve found Hyper-V to be very useful for virtualizing my development environments, but I’ve also had a steep learning curve to get various items configured just right. Allowing RDP connections to guest VMs was one area that I hadn’t been able to get right for the longest time. Now that I resolved these issues I hope that others can avoid the pitfalls that I ran into. If you know of any other items I left off feel free to let me know.
-Frog Out
Links
Turning on Network Discovery
Services required for Network Discovery
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#522881Brian — RDP does indeed work with “External” connections. Those connection types make the guest VMs appear just as any other machine on the network. (I just confirmed this setup on my server.) Maybe the IP address settings were wrong? You definitely need to allow RDP connections (your step #1).I’m not sure about the rest of the settings you suggest. (They aren’t ringing a bell with me tonight, like the network connection type did.)
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#522966Kelly, Thanks for the input. My mistake, you are correct that “External” network adapters allow communication to the host. Unfortunately my external network adapter is not always enabled due to a configuration that disables it when the power cord is removed. I’ve updated my post to reflect your correction. Thanks for responding so quickly.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#568665I’ve had troubles with this one for a while. Good thing that I found this post.Good article.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#598790Install the Remote Server Administration Tools for your OS and you can use VMConnect.exe to get this same functionality. Makes it really easy.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#598833James,Thanks for the input. I may try that out next time I get a chance.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#615987How does vmconnect address teh screen resolution issue ?? I tried to use it, but i cannot set the resolution to something useable on my laptop. Desired resolution is 1366 x 768800 x 600 leaves me great big black lines down either side and anything bigger i get scroll barsLuke
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#616217Luke, I now use a program called mRemote to connect to my VMs. This program has gone through a number of changes since I started using it but it works very well for managing multiple VMs, viewing in full screen mode, and storing credentials. Be sure that you can ping the guest VM from the host and you should be set to connect.http://www.mremote.org/wiki/Default.aspx?Page=Downloads&AspxAutoDetectCookieSupport=1
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#620073Great Post Brian! i was in the same boat as you described and finally i figured it out. Your post was of great help to me.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#620167Very thanks. Me working and be usefull.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#638139I would like the RDP session to open as soon as the Hyper-V image will allow it. Is there some kind of flag sent to the host that could trigger the RDP to open?Currently, I am delaying the RDP by 10 minutes but that is a LONG time.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#639216Thanks for sharing this. It’s much simpler than others found on the web and it works. Really appreciate it.
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#639554Awesome post! Where I’m struggling is with remote access TO my vm’s. My environment has 5 guest OS installed, and I want 5 people (at 5 locations) to access the box, and each have access to their own VM. Any ideas?
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#642800Great Post!!! I was not able to RDP to my hyper-v guest until I found your blog post. very helpful for people have issue. thank you so much!!
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#642920Hi Brian,many thanks for your post.I have a question. Is there some kind of knowledge base site from Microsoft for HyperV, where you can add your post?So it would be possible to have such important Information in one place instead of searching with Google or whatever.Seems you have very good contact, so maybe somebody knows of such site?Best RegardsRoman
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#650018I like the post, it is well written and easy to follow. Now, my problem. I followed every step and Network Discovery on my Win2008 R2 SP2 server is on, but I can’t RDP and the network doesn’t show it on the host (Windows 10 Enterprise) Any other suggestions?
LikeLike
Originally posted on: https://briantjackett.com/archive/2010/06/06/how-to-configure-remote-desktop-to-hyper-v-guest-virtual-machines.aspx#650788Great article! Definitely helped me out today.
LikeLike
Brilliant, thank you. I had remote desktop working after original install of Windows 2008 R2. Ran windows updates, could no longer connect and three of the four services you mentioned were disabled. I can now run remote desktop again.
Thanks
Andy
LikeLike
[…] How To Configure Remote Desktop To Hyper-V Guest Virtual … […]
LikeLike