This article describes our enhancements to the Microsoft Remote Desktop Protocol (RDP) for Windows, iOS, Android, macOS, and Linux remote desktop clients. We provide new approaches for improving the user experience in remote sessions.
Each user, working via the Remote Desktop, may need accessing his/her USB devices attached to a workstation or thin-client, in the RDP session on virtual desktop. And USB Redirector RDP Edition allows to accomplish this! This solution is the most suitable for single-user applications, where one Virtual Machine is used by only one user at a time. Get the Remote Desktop client. Follow these steps to get started with Remote Desktop on your Mac: Download the Microsoft Remote Desktop client from the Mac App Store. Set up your PC to accept remote connections. (If you skip this step, you can't connect to your PC.) Add a Remote Desktop connection or a remote resource.
Main Purpose of Microsoft RDP
The Microsoft Remote Desktop Protocol (RDP) is a proprietary protocol that provides users with remote access to a server running RDP server software.
We can’t do without Microsoft products. However, there are some cases when iOS, Android, Mac, or Linux devices are more effective because of corporate specifics or job requirements. Unfortunately, there are some applications that are compatible only with Windows and don’t have alternatives for iOS, Android, macOS, or Linux. In this case, it's reasonable to use terminal servers (or virtual desktop infrastructure) running on Microsoft server operating systems. For this purpose, Microsoft developed the Remote Desktop Protocol, or RDP.
In addition to data transfer protocols, Microsoft also has client applications for transferring data to remote desktops. The most popular Microsoft RDP clients are for Windows, macOS, Android, and iOS.
However, it’s impossible for Microsoft to implement every function that their users may want in their products. Fortunately, there's a sufficient number of custom RDP solutions for different platforms that eliminate the need to look for an alternative remote desktop client.
Related servicesCloud Computing & Virtualization Development
Microsoft RDP Enhancements
The experts at our company provide a wide range of solutions and enhancements for Microsoft RDP clients.
We can establish a remote Windows/Linux session or a RemoteApp on Windows, iOS, Android, macOS, and Linux. On top of that, we provide users with a range of additional functionality that ensures a more convenient and secure RDP workflow in remote sessions.
In addition to supporting standard RDP functions, we have our own set of RDP enhancements.
Flash Content Viewer
Our solution redirects Flash content from the remote server to the client. This implementation reduces the workload for the server processor and redirects Flash content to the client processor, ensuring better scalability and improved productivity with full synchronization of audio and video streams.
Our Flash content viewer lets you control Flash channel bandwidth and connect to the internet either from the client or the server.
This approach allows users to easily access Fash content such as educational and corporate video lessons as well as built-in flash videos on many websites.
Supported client platforms: Windows, macOS, Linux.
Using this function in the default RDP, you may face such problems as Flash content playing as a slide-show or audio and video lag.
Single-Driver Printing Solution
We developed a single-driver printing solution for adding printing functions that aren’t available in RD Easy Print. Because our solution uses a universal printer driver, there's no need to install a printer driver on remote servers as is required with the regular RDP printing functionality.
This solution also has advanced RDP settings (which aren't available in Microsoft RDP) that let you choose the packaging method for transferring data, change channel workload, opt for manual printer selection (to select a printer session), and configure a distributed system.
Supported client platforms: Windows, macOS, Linux.
Our approach allows you to redirect any client USB devices to the remote session. These devices can be web cameras, printers, scanners, flash-disks, tablets, smartphones, or other devices such as Busy Light.
After being redirected to the remote session, the user of the remote session can interact with the USB device as if it were local.
Supported client platforms: Windows, Linux.
This function isn’t available in the original version of RDP, which only has an option to redirect PnP devices to the remote session using Windows RD client functions. However, not all USB devices are recognized as PnP.
Enhanced Remote Audio Redirection
Enhanced remote audio redirection ensures high-quality bidirectional sound, allowing you to play high-quality audio content and redirect microphone inputs and headphone outputs to a remote session.
The advantage of our solution is that we don't limit you to using only standard codecs, but rather let you choose audio codecs according to your needs (be that a board meeting call, day-to-day phone calls, or playing high-quality songs). Using our solution, you'll get better sound with less network bandwidth and the opportunity to choose your quality.
Our solution is compatible with the following applications:
- Microsoft Office Communicator
- Avaya Software
- Skype and Skype for business
This function is very important for cases whenever audio is involved. For instance, our solution can be used during conference calls when people need to approve important business decisions, build a future business strategy, or pitch projects.
Rdp Usb Device Redirection
Supported client platforms: Windows, Linux.
Remote Sound Redirection in the Browser
Companies often simplify remote session configurations for their employees, providing them with only a website URL for running a remote session.
The session runs in a browser and allows user to access remote functionality using various office applications, taking part in group calls, watching educational videos, and so on.
We've successfully implemented remote sound redirection in remote sessions running on Internet Explorer, Edge, Safari, Firefox, Chrome, and other browsers for Windows, iOS, Android, Mac, and Linux clients.
It’s important that this implementation avoids long audio delays. Our specialists did a lot of work to achieve acceptable latency for users that's ~50–150 milliseconds depending on the network and environment.
Microsoft doesn’t provide any alternative RDP function for its clients.
Specifics of Testing of Sound Redirection in Terminal Sessions
Clipboard for Text (Files) Redirection
Our clipboard for text (files) redirection feature overcomes limitations on sharing files and text between the client and the remote session.
This solution allows a user to copy a text from iOS, Android, macOS, and Linux devices and paste it to the remote session – and vice versa. It also lets users share files between Mac and Linux devices and the remote session.
Text and file copying isn’t available in some Microsoft RD clients.
This solution allows users to redirect the microphone from iOS, Android, Mac, and Linux devices to a remote session and use it for audio recording and calls.
Microsoft RD clients for iOS, Android, and macOS platforms don’t have functionality for microphone redirection.
Adaptive Graphics allows you to use a technology for remote session rendering so you can take advantage of RemoteFX adaptive graphics.
In addition to RemoteFX adaptive graphics, you can also use advanced codecs (H.264 clear+progressive) that significantly reduce bandwidth usage without loss of picture quality.
^ Microsoft SEDNA download. Visual foxpro 9.0 portable. Retrieved 2018-08-31.
Adaptive graphics is supported by Windows operating systems starting from Windows Server 2012 and Windows 8.
Beginning with Windows 8, Windows 8.1, Windows 2012, and Windows Server 2012 R2 operating systems, Microsoft RDP uses only two streams:
Clear codec is used for text data by letting the operating system know that it's dealing with a text and transferring that data as text (this is typical for PDF, MS Office files, etc.).
Progressive codec is designed for pictures. The main advantage of this codec is that it allows you to send a picture at a lower quality and then render it to its initial quality.
AVC 444 is used as the one and only codec starting from Windows 10 and Windows Server 2016:
AVC 444 allows you to process text and pictures in one stream. This is achieved by compressing transferred data and reducing the network workload thanks to the increased processing workload on the server and the client (if a client has a dedicated graphics card).
Supported client platforms: Windows, iOS, Android, macOS, Linux.
Dynamic Resizing Feature Support
The dynamic resolution feature is used when an iOS or Android device's orientation changes(for instance, from landscape to portrait). In this case, the remote session resolution will be automatically resized to fill the screen depending on the device's orientation.
Our solution allows the user to fully concentrate on the session workflow without paying attention to the device orientation. In simple words, we make the user workflow more comfortable.
The dynamic resizing feature isn’t available in the default Microsoft RD client for iOS.
This feature is also supported in Mac and Linux devices and activates in case the session or application window is resized (in which case the user doesn’t see a scroll bar for the session window as all data is seized according to the new screen size), the screen resolution is changed, or a display is plugged in or unplugged.
Dynamic resizing is performed without reconnecting to remote session with new operating systems like Windows Server 2012R2, Windows Server 2016, Windows 10, Windows 8.1.
Dynamic resizing requires reconnecting in old operating systems like Windows 7, Windows 8, and Windows Server 2008R2, and Server 2012.
The Microsoft RD client for macOS doesn’t support this feature. After a session window is resized in macOS, the user sees a scroll bar.
Remote FX Multitouch Gestures Support for Android and iOS
Tablets use touch screens and don’t require a physical keyboard and mouse. For more convenience, we implemented multitouch gestures in remote sessions, which are launched from iOS and Android clients.
Remote FX multitouch gestures allows you to use specific gestures to control the remote server (left/right click; select an area; move, drag or resize an object; scroll up and down; zoom in and out; quick zoom in and out, etc.). The feature is supported starting with Windows Server 2012 and Windows 8.
This function isn’t fully implemented in the Microsoft RD client for iOS or Android.
If you're looking for extended RDP functionality as part of your solution for remote desktop, our specialists can provide you with an SDK for our custom RDP solutions. We can also help you implement existing RDP enhancements in your solution or work on further developing this technology.
At my work we are required to use Smart Card to login to our systems. It works fine as long as we are logging on to our Macs or our Windows Desktops. Even if we use Remote Desktop connection from our Windows desktops to other Windows machines, it works without any issues. The problem occurs when we try to logon to Windows machines from Macs. There aren’t many Remote Desktop client options available for Mac that support Smart Card redirection. Even Microsoft Remote Desktop client on Mac currently does not support Smart Card redirection. I found a nice client Royal TSX that supports Smart Card redirection and it works fine. Actually it worked fine until Windows 7 and Windows 2012 Server. It stopped working with Windows 8 and Windows 2012 R2. It looks like Microsoft has changed the behavior of Smart Card service in Windows 8 and Windows 2012 R2. When I try to logon to Windows 2012 R2 Server or Windows 8 from Mac using Remote Desktop, I get the error “No valid certificates were found on this smart card” as shown below.
hmmm. The workaround I used for this was to connect to my Windows 7 Virtual Desktop and from there connect to Windows 8, Windows 10 or Windows 2012 R2 machines. This was an ok workaround until recently when my Virtual Desktop was upgraded to Windows 10. I was expecting that this Smart Card issue would have been resolved in Windows 10 but Windows 10 has the same issue. After doing some research online I found out that Microsoft has changed how Smart Card service behaves in Windows 8 and later. The Smart Card service only starts when it detects the Smart Card reader. It looks like when I Remote Desktop from Mac to the Windows machine the Windows machine is unable to detect the Smart Card and therefore the service does not start. I tested it by manually starting the Smart Card service and I was then able to logon to the machine. Now the problem is how can I make sure to start the service when I am connecting via Remote Desktop. I noticed that when I connect using Remote Desktop, the event viewer logs an event “9027” in Application Logs, as shown below.
Now I think that I can use this event and use task scheduler to start the Smart Card service whenever there is this event in the Application Log.
I started the Task Scheduler and created a new Task by using the steps below.
Start Task Scheduler, right-click on Task Scheduler Library and then click on Create Task
Name the task whatever you want, I used “Start Smart Card Service”.
Make sure to use the options as shown in the picture above.
“When running the task, use the following user account:” needs to be set to “SYSTEM”. We want this task to run as SYSTEM user.
“Run whether user is logged on or not” needs to be selected. We want this task to run whether any user is logged on or not.
“Run with highest privileges” needs to be checked. We want this task to run with highest privileges. The task may run fine without checking this box, but I just checked it so that it doesn’t fail because of the lack of any permissions etc.
Now go to “Triggers” tab
Here click on “New” button to create a new trigger. You will see the following window
Click on the dropbox next to “Begin the task:” and select “On an event”. We want to start the task on an event.
Now in the “Log:” dropbox, select Application
In the “Source:” dropbox, select “Desktop Window Manager”
and in the “Event ID:”, type “9027”.
We saw from the Event Viewer log that the log type of “Application”, Source is “Desktop Window Manager” and Event ID is “9027”. So, we want this task to run on this event only. Now click on “OK” and you will see this trigger added.
Now go to Actions tab
Click on “New” button to add an action.
In the “Program/script:”, type “net”. In the “Add arguments (optional):”, type “start scardsvr”. i.e. we want to run “net start scardsvr” to start the Smart Card service. Now click on “OK” to close this window. Everything else can be left as default so you can click on “OK” again to close the properties window.
Now your task is setup and will show up in the list of tasks. This task should start the Smart Card service whenever you connect using Remote Desktop Connection.
Try it, when you connect using Remote Desktop, it should now read the smart card and ask you to enter your PIN, after entering the PIN you should be able to logon to your Windows 10 machine. If it doesn’t work, try taking out the smart card and inserting it again.
Remote Desktop Client Mac Usb Redirection Windows 10
Now this resolved my issue with connecting to my Windows 10 Virtual Desktop from my Mac Desktop. But later on I faced another issue, when I lock my Windows 10 machine, after sometime it stops accepting my Smart Card and gives me either “No valid certificates were found on this smart card” or “The requested key container does not exist on the smart card” error. I haven’t found a workaround for this and am still looking to see what event it generates to maybe trigger my task on that event too. But for now, whenever I receive these errors while trying to unlock my Windows 10 machine, I just disconnect the session and reconnect and it works fine. I will update my post if I am able to develop a workaround for this.
This workaround should work on Windows 2012 R2 also, the difference is that Windows 2012 R2 server may generate some other event in the event log other than “9027” and you would have to look for that and configure your task to trigger on that event instead.
Remote Desktop Client Mac Usb Redirection Software
If you need help, please don’t hesitate to contact me. I would also like to request that if you find a better workaround, please let me know.
Remote Desktop Client Mac Usb Redirection Windows 7
Until Microsoft or Apple (whoevers the issue is) resolves this issue, I am using this workaround.
Thanks for reading my post!