RemoteApp for Hyper-V (VDI) Deployment

RemoteApp for Hyper-V (VDI) Deployment

  • Comments 17

This blog is a follow-up to the RemoteApp for Hyper-V blog at http://blogs.msdn.com/rds/archive/2009/12/15/remoteapp-for-hyper-v.aspx.

Introduction

Similar to RemoteApp, the RemoteApp for Hyper-V feature allows users to access a specific hosted application remotely, as opposed to the entire desktop. When using RemoteApp, the application runs in the context of a server session; however, RemoteApp for Hyper-V enables remote access to an application running on a Hyper-V virtual machine (VM). That is, this feature allows you to launch applications that are hosted on VMs as remote applications.

This blog outlines setup steps and common troubleshooting tricks for deploying RemoteApp for Hyper-V.

Supported Operating Systems

The supported SKUs for this feature are as follows:

  • Guest operating systems on the Hyper-V server (all client operating systems):
  1. Windows® 7 Enterprise, 32-bit edition; Windows 7 Ultimate, 32-bit edition
  2. Windows Vista® Enterprise with Service Pack 1 (SP1), 32-bit edition; Windows Vista Ultimate with SP1, 32-bit edition
  3. Windows® XP Professional with SP3, 32-bit edition
  • Client operating system
  1. Windows 7 64-bit / 32-bit

As outlined in the “RemoteApp for Hyper-V” blog, this feature can be deployed in either of the following two ways:

1. Stand-alone scenario

The administrator completes the following steps:

a. Set up the Hyper-V computer and install a supported guest operating system as outlined above in the “Supported Operating Systems” section.

For more information, see http://technet.microsoft.com/en-us/library/cc753637(WS.10).aspx.

b. Install the applications on the guest operating system and create RemoteApp RDP files specific to each application that would be launched as RemoteApp programs. How to create RemoteApp RDP files is explained in detail below.

c. Share these RDP files with the end user to launch this application as a RemoteApp program.

d. The user then launches these RDP files and enters their credentials to get access to the RemoteApp programs hosted on the guest operating system on the Hyper-V computer.

2. Virtual Desktop Infrastructure (VDI) scenario

The administrator completes the following steps:

a. Set up the entire VDI solution, which would involve deploying RD Connection Broker, farms, and personal desktops.

b. Install the applications on the guest operating systems in the farm or personal desktop, and create RDP files according to the farm or personal desktop deployment.

c. Share these RDP files with the end user so that they can launch these applications as RemoteApp programs.

d. The user then launches these RDP files and enters their credentials to get access to the RemoteApp programs hosted on the guest operating system on the Hyper-V computer.

To set up guest operating systems on which we can enable RemoteApp for Hyper-V:

1. Windows XP SP3 32-bit guest operating system

a. Setting up the guest operating system

1. Install Windows XP Professional SP3, 32-bit edition, on the Hyper-V computer as a virtual machine.

2. Enable Remote Desktop on this VM.

3. Install the Windows XP SP3 RemoteApp for Hyper-V package on this VM.

Note: The update package for Windows XP SP3 can be found here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=2f376f53-83cf-4e5b-9515-2cb70662a81b&displaylang=en

4. Restart this VM after the package is installed.

5. Change the following regkey on this VM:

    • Go to HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList.
    • Set the value of fDisabledAllowList to 1.

b. Creating the RDP file

1. Launch Remote Desktop Connection (MSTSC) and click Save As to save the RDP file that the administrator can use for the RemoteApp for Hyper-V feature.

clip_image002

2. Here is a sample RDP file for the stand-alone scenario described above:

clip_image004

The RDP file launches Notepad from the Windows XP SP3 guest operating system. The administrator can follow the steps below to create the RDP file.

As can be seen from the sample RDP file, the administrator would do the following:

1. Change the parameters

    • “remoteapplicationmode:i:1”
    • Alternate shell:s:rdpinit.exe

2. Add the parameters

    • RemoteApplicationName:s:<user friendly name>
    • RemoteApplicationProgram:s:<path to the application>
    • DisableRemoteAppCapsCheck:i:1
    • Prompt for Credentials on Client:i:1

After modifying the RDP file, the administrator saves the RDP file. For each application that he wants to publish as a RemoteApp program, the administrator creates an RDP file in a similar way as described above.

2. Windows Vista with SP1 32-bit guest operating system

a. Setting up the guest operating system

1. Install Windows Vista SP1 Enterprise or Ultimate, 32-bit edition on the Hyper-V computer as a VM.

2. Enable Remote Desktop on this VM.

3. Install the Windows Vista SP1 RemoteApp for Hyper-V package on this VM.

Note: Update the package for Windows Vista SP1:

http://www.microsoft.com/downloads/details.aspx?familyid=097B7478-3150-4D0D-A85A-6451F32C459C&displaylang=en

4. Restart this VM after the package is installed.

5. Change the following regkey on this VM:

    • Go to HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList.
    • Set the value of fDisabledAllowList to 1.

b. Creating the RDP file

1. Launch Remote Desktop Connection (MSTSC) and click Save As to save the RDP file that the administrator can use for the RemoteApp for Hyper-V feature.

clip_image002[1]

2. Here is sample RDP file for the stand-alone scenario described above:

clip_image006

The RDP file launches Notepad from the Windows Vista SP1 guest operating system. The administrator can follow the steps below to create the RDP file.

As can be seen from the sample RDP file, the administrator would do the following:

1. Change the parameters

    • “remoteapplicationmode:i:1”

2. Add the parameters

    • RemoteApplicationName:s:<user friendly name>
    • RemoteApplicationProgram:s:<path to the application>

After modifying the RDP file, the administrator saves the RDP file. For each application that he wants to publish as a RemoteApp program, the administrator creates an RDP file in a similar way as described above.

3. Windows 7 32-bit guest operating system

a. Setting up the guest operating system

1. Install Windows 7 Enterprise or Ultimate, 32-bit edition on the Hyper-V as a VM.

2. Enable Remote Desktop on this VM.

3. Change the following regkey on this VM:

  • Go to HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList.
  • Set the value of fDisabledAllowList to 1.

b. Creating the RDP file

1. Launch Remote Desktop Connection (MSTSC) and click Save As to save the RDP file that the administrator can use for the RemoteApp for Hyper-V feature.

clip_image007

2. Here is sample RDP file for the stand-alone scenario described above:

clip_image008

The RDP file launches Notepad from the Windows 7 guest operating system. The administrator can follow the steps below to create the RDP file.

As can be seen from the sample RDP file, the administrator would do the following:

1. Change the parameters

    • “remoteapplicationmode:i:1”

2. Add the parameters

    • RemoteApplicationName:s:<user friendly name>
    • RemoteApplicationProgram:s:<path to the application>

After modifying the RDP file, the administrator saves the RDP file. For each application that he wants to publish as a RemoteApp program, the administrator creates an RDP file in a similar way as described above.

Some facts about the RemoteApp for Hyper-V feature

1. This feature is enabled by setting the following registry key on the Guest VM:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList, and setting the value of fDisabledAllowList to 1.


This means that we are disabling the application allow list on the VM, which means that any application from the VM can be launched as a RemoteApp program. The administrator does not have control over what applications are published or what applications can be launched. After the customer has the created RDP file, he can change the “RemoteApplicationName:s:” parameter and launch any application by setting the correct application path.

Troubleshooting issues that you might observe when enabling this feature

1. While launching RemoteApp for HyperV, you see the error “Windows cannot start the RemoteApp program.”

clip_image009

a. You might observe this error while enabling this feature.

b. This might happen if the fDisabledAllowList regkey is set to 0 on the VM.

c. Change the following regkey on this VM:

  • Go to HKLM\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList.
  • Set the value of fDisabledAllowList to 1.

2. While launching RemoteApp on Windows XP SP3, the application does not launch and the connection is stuck in the details pane.

clip_image011

a. You might observe this error while enabling this feature on Windows XP SP3.

b. If you see this error, there is probably a missing parameter in your created RDP file.

c. Check to see if your created RDP file has alternate shell:s:rdpinit.exe.

d. If this parameter is missing, add this parameter to the RDP file and this should solve your problem.

3. "The remote computer does not support RemoteApp" error

clip_image012

a. You might observe this error while enabling this feature on Windows XP SP3.

b. If you see this error, there is probably a missing parameter in your created RDP file.

c. Check to see if your created RDP file has DisableRemoteAppCapsCheck:i:1

d. If this parameter is missing, add this parameter to the RDP file and this should solve your problem.

4. While launching RemoteApp on Windows XP SP3 / Windows Vista SP1, the application might get stuck in Remote Desktop

a. You might observe this if the update package for Windows XP SP3 or Windows Vista SP1 is not installed correctly on the VM.

b. Uninstall the package and restart the VM to make sure that the package is completely removed.

c. Now, reinstall the package and following the setup instructions as described above for Windows XP SP3 or Windows Vista SP1.

5. While launching RemoteApp, the credential window is shown in the details pane.

clip_image014

a. You might observe this error while enabling this feature on Windows XP SP3.

b. If you see this error, there is probably a missing parameter in your created RDP file.

c. Check to see if your created RDP file has Prompt for Credentials on Client:i:1.

d. If this parameter is missing, add this parameter to the RDP file and this should solve your problem.

Leave a Comment
  • Please add 2 and 4 and type the answer here:
  • Post
  • Great article, thank you!

    Somtehing is not clear to me. How can I control the rdp session to logoff when the user closes the remote application window? On a Terminal Server I can use Terminal Server Settings for this but my guest is a Windows XP Pro machine. How about this?

    Regards

    Onedin

  • Hi Onedin,

    You can try using this

    1. Launch gpedit.msc

    2. Navigate to Computer Configuration->Administrative Templates->Windows Components->Terminal Services->Sessions

    3. Set the policy "Set time limit for disconnected session" to 1 min.

    This should logoff the Remote Application session after 1 min after the session has entered disconnected state.

    The Remote Application session enters disconnected state after 30 sec once the user closes last Remote Application window.

    Note, this setting this GP will apply this policy for both RDP and Remote Application sessions. Also, note that logging off Remote Application session, user would lose all of their unsaved data.

    Thanks,

    Kaushal Mehta.

  • please excuse my newbie question, but I can't get some very essential thing.

    where is the connection point information stored? I.e. how the client knows what host/gateway/whatever connect to? And how the host knows what VM connect the client to? Is this information also stored in RDP files or what?

  • Hi,

    I am not sure I completely understand your question. Are you asking about stand-alone setup or Virtual Desktop Infrastructure (VDI) setup for RemoteApp for Hyper-V?

    If you are asking about stand-alone setup, the RDP parameter

    1. "full address:s:" refers to the name of the server. In this case, it will be the name of the Guest OS (XP SP3 / Vista SP1 / Win7)that is hosting the RemoteApp.

    2. "gatewayhostname:s:" referes to the gateway name.

    Let me know if you are looking for information on Virtual Desktop Infrastructure (VDI) scenario.

    Thanks,

    Kaushal Mehta.

  • Thanks Kaushal,

    So to my understanding in this case there are no special requirements for virtualization host? It does not need any special roles or features as we connect directly to the Guest OS and host doesn't participate in the connection process. So it could be the free Hyper-V server (or even a third party hypervisor)?

    If the above is correct, how the story is different for VDI scenario?

  • Hi Pronichkin,

    Third party hypervisor is not supported.

    Regarding VDI scenario, you would need to setup entire VDI solution, since virtualization host (Hyper-V server) plays a very important role in the connection process.

    Thanks,

    Kaushal Mehta

  • Thanx Kaushal!

    I'm gonna try it!

    Regards

    Onedin

  • Hi,

    I have test this on VDI. Work fine when using personal virtual desktop (running win7) but not successful when connect to Win7 Virtual desktop pool. Any idea?

  • Hi Lai,

    Could you let me know what do you see when you try to establish virtual desktop pool connection? Is there any error pop-up shown?

    What is your setup like? Are you using gateway?

    Thanks,

    Kaushal Mehta.

  • Hi,

    Great article, thanks!

    I tried this configuration on a W7 VM and it works perfectly when I connect from another W7 machine.

    I can't seem to get it to work when connecting from a Mac using RDC2.01, however. Any suggestions on how to run the app from a Mac client?

    Oliver

  • Hi Oliver,

    RemoteApp / RemoteApp for Hyper-V is not supported on Mac.

    Thanks,

    Kaushal Mehta.

  • Thank you for this great post!!

    I had the problem as shown in toubleshoot #2 and this was bugging me for ages

    A BIG thank you!!

  • I have the solution working in a one to one scenario, with the guests running on hyper-v and can publish desktops using pooled vm's

    I am unsure how to allow the Remote Desktop Connect Manager to broken the connections to the RemoteApps. If the guest VM is specified in the RDP file then won’t this be like a standalone scenario?

    I was thinking of setting the "gatewayhostname:s:" value to the RDCB.

    Any thoughts?

  • I have managed to apply this setting to my windows 7 enterprise without needing to use a VM.

    I have also managed to make it run as an application and a web server, being able to remote control multiple sessions from browsers.

    Nevertheless, I am still unable to publish the remote applications on the webserver. I know this can be done in windows server 2008 r2. But, is there a way to manage it from windows 7 enterprise or ultimate? can applicationes be published on the web server?

    I have simulated that instance by using IIS 7.5, creating roles and applications pools with windows authentication methods, set up a DNS server, porforwarding, run through firewalls; in order to publish the .rdp files which can be downloaded from the web (after user/pass credentials), But this is just a workround to the question I mentioned above.

    What about remoteapps published over the web on windos 7 enterprise/ultimate? Can it be done as it is done in windows 2008 r2?

    Thanks in advance for your support!!!

    regards

  • This is a great option for beng able to publish applications that only run on earlier versions of Windows, but is there a patch to enable RemoteApp on Server 2003?  I would like to create a single VM that runs 2003 Terminal Server and use it as my RemoteApp source rather than burn a whole ton of ram and disk space on 50 Windows XP VM's.

Page 1 of 2 (17 items) 12