Enable RemoteFX on Hyper-V Server SP1

SP1 for Windows 7 / Server 2008 R2 brought about 2 new features.  Installing them on a standard Windows Server 2008R2 is well document, but requires jumping over some hoops in Hyper-V. Here’s the steps to get it working from scratch, assuming you meet the requirements.



0. Do the following checks before you continue:

a. Ensure that your Windows 7 VM is either Ultimate or Enterprise. (Professional did not work for me)

b. The management PC is connected to your Hyper-V host via LAN

c. Your Hyper-V host has met the necessary CPU / RAM / GPU requirements with drivers installed.

d. You can connect to Hyper-V host via MSTSC

[Update] e. You need at least an i7 Processor which supports Second Level Address Translation.  Failure to meet this requirement results in the following error at step 13.


1. Install SP1 on Hyper-V Host.

a. Reboot.

2. Install SP1 on Windows 7 Client VM.

a. Reboot.

b. Load up the Integration Disc Image.

c. Update/Repair Hyper-V Integration tools.

d. Reboot.

e. Ensure that Remote Desktop – RemoteFX(TCP-In) is permitted by the firewall.


f. Ensure that you can access the VM via Remote Desktop. (i.e. via mstsc, with RDP services enabled, firewall set)

g. Shutdown VM.

3. Install SP1 on the PC as you need RDP 7.1 later.

4. On the Hyper-V Host, start Powershell by typing:


[Update] If Hyper-V complains that Powershell is not a valid command, it means that you have not enabled Powershell.  Do the following:

  • C:\> DISM /Online /Enable-Feature /FeatureName:NetFx2-ServerCore
  • C:\>DISM /Online /Enable-Feature /FeatureName:MicrosoftWindowsPowerShell
  • Reboot Hyper-V.
  • C:\>Powershell

Source: http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/6957409b-c348-47a8-8ac7-f3ece3c9fbee

5. On the Hyper-V Host, enable RDS-Virtualization by typing in Powershell:

PS C:\> Import-Module ServerManager

PS C:\>Add-WindowsFeature RDS-Virtualization

PS C:\>Exit

Source: http://social.technet.microsoft.com/Forums/en-US/winserverTS/thread/385e3b1a-89a6-417e-bdde-87b86f5ee80f

[Update] If Powershell complains that “ServerManager” was not loaded, rectify it by:


  • C:\>Dism.exe /Online /Enable-Feature /FeatureName:ServerManager-PSH-Cmdlets

6. On the Hyper-V Host, enable RemoteFX Embedded Video Capture by typing:

C:\>dism /online /enable-feature /featurename:Microsoft-Windows-RemoteFX-Host-Package

[Update] It is not necessary to restart after this.

C:\>dism /online /enable-feature /featurename:Microsoft-Windows-RemoteFX-EmbeddedVideoCap-Setup-Package

[Update] It is necessary to restart after this.

Partial Source: http://technet.microsoft.com/en-us/library/ff817602(WS.10).aspx

7. Reboot.

[Update] If upon reboot, you do not see Hyper-V login screen, fear not. Log in to Hyper-V via MSTSC, and install your Graphic Card driver from NVIDIA or AMD:

C:\>pnputil –i –a <path to driver.inf>

8. Start Hyper-V Manager and point to your Hyper-V Host.

[STOP] Before proceeding, HAVE YOU DONE 2e, 2f and 3?

9. Right-Click on your Windows 7 Client VM, select “Settings”.

10. From the left menu, select “Add Hardware”.  You should see the “RemoteFX 3D Video Adapter” enabled.


11. Setup your display settings, then click OK.


12. Start the VM. 

13. Connect to your VM via MSTSC.

If you try to connect to the VM via the Hyper-V Console, you’ll get an error message saying something like “RemoteFX is enabled and you can’t use the Hyper-V console to manage it”

Of course, this message can be used to check if RemoteFX is indeed running.

[Update] Having some “Unable to start synthetic 3D video driver” on a separate VM. Will update once I fix a fix.

[Update] RemoteFX requires at least an i7 processor supporting SLAT.

14. To tweak the quality / response of the RemoteFX connection, head over to http://www.vdicloud.nl/?p=234 and search for “Group Policy Editor Console”


Just for reference, here’s the specs of my test system:

ASUS X58  Sabertooth Motherboard

Kingston DDR3 PC1333 6 x 4GB

Intel i7-960 Processor

ASUS EN8400GS Graphics Card (installed driver via pnputil)

Hitachi 7200 RPM HDD 2 x 1TB on RAID 1


Phew, that’s quite some work! Next, I’ll follow up with USB Redirection and Dynamic Memory. Hoping it is easier than this~!

Let me know how these instructions work for you. Good luck!

[Update] Now I need to go con someone to swap and i7 with my Core 2 E8400.


9 responses to “Enable RemoteFX on Hyper-V Server SP1

  1. Really appreciate this walkthrough, it is much simpler than reading the MS docs on RemoteFX. The one thing I wish I had noticed before I started down this path though is that RemoteFX requires two GPU’s, even if one is crappy (read: integrated) so that it can load the video capture driver on the unused GPU and the standard driver on the discrete GPU.

    Wouldn’t have been a problem but my business has limited resources and we were trying this on a powerful workstation (without integrated graphics) instead of a server 😦

  2. thanks for a this great article! I’m out of my test platform for this right now but will surely go on using this great info as I have the hardware back (I was using full-blown 2008 R2 server with hyper-v role and it was a bit overkill…)

    readers might be glad to know not only i7 would work with it (mine test system was lower end i5). SLAT is essentially a part of “VT-x” (as Intel marketing info calls virtualization support capabilities of their CPUs).

    here’s where VT-x enabled CPUs can be searched:


    don’t be fooled! the list above does have exact Intel Processor Numbers. This number is what you’re looking for when you want your VT-x (SLAT) support. You do not look at the “marketing name” like “Core 2 Duo” or “Celeron” (there are very aged celerons as well, right?), processor number is all what important when it comes to a CPU feature list like second level address translation (or EPT as extend page translation inside intel docs).

    consider system with standalone GPU. you don’t need any higher end stuff to play around with RemoteFX – I was using a kind of $30 ATI GPU in my test installation with Core i5. all what was important is 1GByte of dedicated GPU memory as it was stated in MSFT docs as a requirement.

    • (update) you don’t trust intel website search for vt-x support that much as I did initially 😦 they do include _some_ virtualization extensions (older stuff like VT) in those search results as well.

      consider dig down to specific processor number datasheet to see if it is indeed have support for EPT (extended page translation).

  3. Pingback: Wo ist RemoteFX? - Seite 2 - MCSEboard.de MCSE Forum

  4. Pingback: SLAT required for Hyper-V3 in Windows 8 / Server 8 | Odie's Blog

  5. thanks for a this great article! I’m out of my test platform for this right now but will surely go on using this great info as I have the hardware back (I was using full-blown 2008 R2 server with hyper-v role and it was a bit overkill.

  6. Hey there,

    found the guide really helpful! So i can contribute a little bit:

    If you are using a nvidia tesla card for remotefx’ing, than the error msg: “Failed bla bla synthetic driver” is a hint, that driver model is set to TCC. Changing it to TCC off with NVSMI could make the failure disappear (in example: my case 🙂 )

  7. Awesome guide. Just sad that it only i7s are supported to use this. I tried it with a C2D e6550 and get the above error message. Any worarounds to this would be much appreciated. The server I am using is for home use and I don’t see the need to upgrade to an i7.

  8. Normally I don’t learn post on blogs, but I would like to say that this write-up very forced me to check out and do so! Your writing taste has been amazed me. Thanks, very great post.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s