Friday, January 12, 2018

HTML5 client for Microsoft Remote Desktop Services 2016: Remote Desktop Web Client

Everyone will be familiar with the Remote Desktop client called MSTSC. Since a few years, Microsoft also has a Remote Desktop client for other platforms like iOS, Mac OS X and Android, available for download from the App Store, the Mac App Store, and the Google Play Store.

As a next step, Microsoft now also has a web client based on HTML5 (currently into preview), called the RD Web Client. This blog post runs through the setup, based on the early preview that I tested. The Remote Desktop Web Client is installed as an extension of the RD Web Access role.

Requirements

The requirements for the Web Client are as follows;

· RD deployment with Gateway, Broker and WebAccess roles all running Server 2016 Operating System. The endpoints (RDSH or Windows Client SKUs) can be running any Windows Operating System starting from Windows 7 SP1 / Windows Server 2008 R2. The client performance will however be better when connecting to Windows Server 2016 or Windows 10 Anniversary Edition or later.

· The RD deployment should NOT be configured to use per-device license.

· The Server 2016 machine hosting RD Gateway role must have this update installed - https://support.microsoft.com/en-us/help/4025334/windows-10-update-kb4025334

· The Gateway and WebAccess roles should be using public trusted certificates

· The client should work on most HTML5 capable browsers and has official support for Edge, IE11, Google Chrome, Firefox and Safari. Mobile devices are not supported.

Installation

By the time the client releases, new PowerShell CmdLets will be available to deploy, manage and configure the client. Based on the current beta, here’s an example of what these cmdlets might look.

We open an Administrative PowerShell console and run the following commands:

Import-Module ($Env:ProgramFiles + "\rd-html5-manage\RDWebClientManagement")
Install-RDWebClientPackage

clip_image002

Next, we copy the certificate used by the RD Web Access role. Optionally export it first, and make sure to include the private key. Then run the following commands in the PowerShell Admin console.

Import-RDWebClientBrokerCert <cer file>
Publish-RDWebClientPackage -Production -Latest

clip_image004

Easy as that! HTML5 support is now added to the RD Web Access role!

Note, in the beta release the Import-RDWebClientBrokerCert currently does not accept password protected pfx files. Make sure you export the certificate using the security principal option as shown below.

clip_image006

Testing

To test the HTML5 web client, open a browser (currently Edge, IE 11, Google Chrome browsers are all officially supported) and browse to https://<publicdomain>/RDWeb/Pages/webclient. For example, in my case I tested an Azure IaaS setup with 2 RD Web Access servers behind an Azure Load balancer. I created a public DNS record for rds.rdsgurus.com and pointed that to the public IP of the Azure Load Balancer. I then browsed to https://rds.rdsgurus.com/RDWeb/Pages/webclient.

At first you will see the regular RD Web Access login screen and you login with a test account as you normally would too.

clip_image008

After logging in you will see the following screen, this is the HTML5 web client containing the 4 sample RemoteApps I published in the RDS deployment.

clip_image010

If you click on one of the RemoteApps an RDP session will be launched. Note that currently you will get an additional prompt for the first RemoteApp as there is no full Single Sign On yet.

clip_image012

Since this was the first RemoteApp, the RDS session will now process the logon.clip_image014

And shortly after, the RemoteApp is now available within the browser.clip_image016

From this point, you can navigate to the bar on the left-hand side and switch between applications and launch new application. All RemoteApps are available within the same screen to allow to work with multiple application easily.

clip_image018

The RD Web Client also allows you to copy-paste between your local machine. It is however currently limited to text only.

clip_image020

There is also support for Remote Audio.
clip_image022

For further management, the RDWebClientManagement PowerShell module beta version also comes with a few other Cmdlets to retrieve the package information, certificate and to uninstall the package. Note that these Cmdlets might slightly change once the PowerShell module reaches general availability.

clip_image024

If you want all users to be redirected to the Web Client instead of the traditional RD Web Access page, you can run the following command on the RD Web Access Server

Set-WebConfiguration system.webServer/httpRedirect "IIS:\sites\Default Web Site" -Value @{enabled="true";destination="https://<domainname>/rdweb/pages/webclient";exactDestination="false";httpResponseStatus="Permanent";childOnly="true"};

Or change the same value using IIS Manager:

clip_image026

The RD Web Client also comes with printing support. A virtual printer called “Microsoft Print to PDF” is available in the user’s session. Don’t be confused by the postfix “redirected 3”. This is not a redirected printer, the name will most likely change so that it is clear that it’s a virtual printer. By virtual printer we mean that the printing to this printer will result in a .pdf file that is transported and opened on the local client. From that local client it can then be printed to any locally available printer.

clip_image028

I’m able to print to this redirected printer

clip_image030

Which results in the pdf being locally available

clip_image032

And in this case, I opened it in my local browser to then print to a locally available printer.

clip_image034

This concludes a first walkthrough of the RD Web Client that is coming up, based on the current preview version. I will share more details on this new client as they come in. If you are currently using RDS in a production environment and would like to test drive the RD Web Client functionality. Feel free to reach out to me so that I can help to get onboarded on the preview.

13 comments:

  1. Hello, good news! Thanks for sharing!
    I have a production ambient, i can install KB4025334 and continue using a traditional platform? In your example you force a re-direct, right?

    ReplyDelete
    Replies
    1. Yes, the re-direct is not mandatory. You could use traditional RD Web Access page with HTML5, in that case the URLs would be:

      For HTML5:
      https:///rdweb/pages/webclient

      For regular RD Web Access page:
      https:///rdweb

      Delete
  2. Is that the correct KB to install? That's the 2017-07 update, which we've long had installed and I'm not seeing this PS module to import.

    Is there a preview program we need to be signed up for or something?

    ReplyDelete
    Replies
    1. It is the correct KB. This requirement was added when the 1st preview bits were available, so yes, a recent updates OS will most likely already have that update.

      RD Web Client is still in Technical Private Preview stage and is expected to become public preview soon.

      Delete
    2. Hi Freek, did you manage to get the HTML Web client work? I'm trying to install that on a virtual machine with a freshly downloaded Windows 2016 Standard Server (February 2018). Unfortunately I get a "non applicable to your computer" error when I try to install KB4025334. I also get the error "Import-Module : The specified module 'C:\Program Files\rd-html5-manage\RDWebClientManagement' was not loaded because no valid module file was found in any module directory" when I try the "Import-Module" command line. Could you point me to a solution? Thanks

      Delete
    3. ...Freek, sorry, for some reason I didn't realize that you wrote that blog :-D So I assume that yes, you had it work. But I cannot get and install that module using KB4025334, and I also cannot find the client seperately on the internet. There is only very few information around about that, or I just don't know where to look for it. Could you help me? That's a pretty interesting feature that could change few things in our company, I'd really like to test it.

      Delete
  3. Hello, which version of the webclient are you using 0.7.0-preview?
    We have also problems with the webclient when we are going through a WAP2016 server. Is this a known bug?

    ReplyDelete
  4. I'm not familiar with issues in regards to accessing RD Web Client and behind WAP2016, did you report this back via the preview program?

    ReplyDelete
  5. Would you be able to provide me the installer? In in the process of upgrading our org's RDS from 2012 to 2016 and this looks very promising.

    ReplyDelete
  6. Any news on a release date or will it be part of Server 2019?

    I'm really interested in getting on board with this.

    ReplyDelete
  7. Heads up: The HTML5 client just went into public preview: http://microsoftplatform.blogspot.nl/2018/03/microsoft-html5-client-public-preview.html

    ReplyDelete
  8. Anyone else getting errors importing broker .cer file? Import-RDWebClientBrokerCert returns: New-Object : Exception calling ".ctor" with "1" argument(s): "The system cannot find the file specified. At C:\Program Files\WindowsPowerShell\Modules\RDWebClientManagement\0.8.1\RDWebClientManagement.psm1:830 char:13

    ReplyDelete
    Replies
    1. Found the sollution: You need to be at root for the function to work. So cd\ first, then run Import-RDWebClientBrokerCert

      Delete