News
Marc-Andre Moreau

Marc-André Moreau, Chief Technology Officer, leads various research and development initiatives at Devolutions. Founder of the FreeRDP project, remote desktop protocol expert, open source contributor with an entrepreneurial background.

MSRDC Is Now Supported in Remote Desktop Manager

Good news! Remote Desktop Manager 2022.1 now supports MSRDC as an alternative to MSTSC, with both embedded and external RDP connections on Windows. What does this mean? And what are the differences between the two? Read on!

MSTSC? MSRDC?

Windows administrators often have the name “MSTSC” etched in memory after years of typing it to launch Windows’ built-in RDP client. However, few people remember what it stands for, so let’s begin with a few definitions:

MSTSC = Microsoft Terminal Services Client (classic, in-box)

MSRDC = Microsoft Remote Desktop Client (modern, out-of-box)

Simply put, MSTSC is the classic RDP client that ships with Windows and that most people are familiar with, whereas MSRDC is the newer RDP client that can be installed as a separate application. MSRDC is meant primarily for Azure Virtual Desktop. While both RDP clients use the same core, they do not have the same user interface and do not support exactly the same features and redirection types.

User Interface Differences

MSRDC sounds great, so what’s the catch? If you go ahead and install it, the first problem you’ll face is that there’s no way to launch a connection to anything other than Azure Virtual Desktop from the GUI (msrdcw.exe). This program does nothing more than connect to a web feed of .RDP files, and it launches them with msrdc.exe, the equivalent of mstsc.exe:

msrdc_mstsc_comparison_en.png
MSTSC and MSRDC, side-by-side

It seems easy enough: Let’s just launch msrdc.exe directly! But that’s where MSRDC falls short in comparison to MSTSC: There is no GUI to specify a destination server, change a few options, and then connect. The only way to use msrdc.exe directly is to launch it with a .RDP file, which makes it difficult to use without a connection launcher such as Remote Desktop Manager.

It’s a shame that MSRDC doesn’t have a simple GUI like MSTSC does, as it is really the only thing preventing its widespread adoption by system administrators. Once connected, the main difference is that MSRDC handles desktop resizing very differently, and it even has an option to trigger a server-side resolution change, something that MSTSC never had (smart sizing is client-side).

Distribution and Support Differences

Since MSTSC is a built-in Windows component, it can only be distributed through a Windows Update, and it follows the same release cadence as Windows itself. This means that it is supported for a longer period of time, but updates come less frequently. MSRDC, on the other hand, has a much faster release cycle with a shorter maintenance window, as it is not part of the core operating system. It is also important to point out that MSRDC is not officially supported by Microsoft for usage outside of Azure Virtual Desktop. This doesn’t mean it is going to break tomorrow; it just means you can’t open a support ticket with Microsoft if it breaks, because they never promised any kind of support in the first place.

So why would someone use MSRDC over MSTSC besides little goodies like server-side desktop resizing if it’s not officially supported by Microsoft?

Out-of-box distribution means you can downgrade to a specific version of MSRDC if you encounter a regression, which is much harder to do with MSTSC.

A faster release cycle means you can get bug fixes faster in MSRDC than with MSTSC due to its slower release cycle.

For most users, sticking to MSTSC is probably the best approach, unless you wish to benefit from specific MSRDC enhancements. However, when facing a possible bug in MSTSC, we now have the option of trying MSRDC for comparison. A lot of bugs and regressions common to both RDP clients are fixed in MSRDC first, so the ability to switch between the two is very useful.

Using MSRDC in Remote Desktop Manager

First, make sure that MSRDC is installed, as it is not (and cannot be) redistributed with Remote Desktop Manager. Administrators can also deploy MSRDC on a large number of computers with automatic updates instead of installing it manually.

Once this is done, edit an RDP connection entry, then go in the Advanced tab to change the RDP Version property to MSRDC. This option is supported for all display modes (embedded and external):

rdm_msrdc_rdp_engine.jpg
MSRDC RDP Engine

Once this is done, save the RDP connection entry, and then launch it. Congratulations, you are now using MSRDC!

While there are very few visual differences, using MSRDC with the embedded mode loads the Microsoft RDP ActiveX from rdclientax.dll instead of mstscax.dll. It is possible to confirm this by looking at DLLs loaded in the Remote Desktop Manager process with tools like Process Monitor. It may not look like much, but figuring out how to do this was by far the hardest part of this research project. Just like MSRDC is not officially supported outside of Azure Virtual Desktop, there is no official support or documentation from Microsoft on how to use the MSRDC RDP ActiveX DLL.

Closing Thoughts

Azure Virtual Desktop is now the most important consumer of RDP at Microsoft, which is why MSRDC gets so much attention. MSTSC, on the other hand, has a GUI that has remained frozen in time, with no significant changes in years. The protocol keeps getting updated under the hood, but the lack of a clear migration path from MSTSC to MSRDC for use cases outside of Azure Virtual Desktop is a missed opportunity. Hopefully, Microsoft will see the potential of getting everybody on board with the newer RDP client.

Are you interested in using MSRDC instead of MSTSC for all your Windows use cases? Azure Virtual Desktop is not supported in Remote Desktop Manager, so please let us know what you think!

Related Posts

Read more News posts