the way keep-alive works on macOS is different than the one available on Windows. Royal TSX for macOS uses the open source FreeRDP implementation to establish RDP connections while Royal TS for Windows is based on Microsoft's own RDP ActiveX component which ships with Windows. Both implementations have their own feature set and the means we have to interact with MS' RDP component is limited as it is closed source.
We decided to not include the keep alive setting in Royal TS for Windows because MS' implementation is not effective. The default settings/policy forces idle connections to get disconnected, even if the keep alive setting is set. See: https://docs.microsoft.com/en-us/windows/win32/termserv/imsrdpclientadvancedsettings-keepaliveinterval
Since you have to disable the setting in your environment first, you can also just configure your environment to not disconnect idle settings. Providing the option would probably cause more confusion because it doesn't work the way someone would expect and still keeps idle session disconnected.
Stefan, thanks for your response. It sounds like the real problem is with Microsoft's implementation. Would it be possible to build both Royal TS and Royal TSX on FreeRDP, rather than having each built on a different RDP implementation?
Well, the MS component is honoring the GPO settings while FreeRDP is not. Not sure if this is a "problem" ;)
Integrating FreeRDP on Windows is a huge effort and would require a lot of time and resources. FreeRDP isn't the silver bullet either. There are many situations where FreeRDP is causing problems or will not work as well as the MS RDP ActiveX. Not sure if we can tightly integrate it into Royal TS but you could try the External Application connection to establish the FreeRDP connection using command line parameters:
When you say "GPO settings", are you talking about server side GPO settings or client side GPO settings? It is clear from the way that Royal TSX works, it is possible for client side behavior of some kind to stop the session from timing out, which makes me think it should be a client side setting. That said, I can't find such a setting. Do you know which specific GPO settings control this? Looks like it is "Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections > Configure keep-alive connection interval" for setting this on the server, so I would think there is something similar for the client.
I honestly don't know if this only applies to the session host configuration or if there's also a client configuration. A quick google brought me to this site:
Maybe this combined with the server settings helps you to keep your session alive.
Thanks for that suggestion. I've tried that among other things. Unfortunately, no luck yet. Thanks for your help. I'll just stick with TSX as often as I can! :)
Understood. Sorry I can't be of more help here.
Hello. Would it be possible to bring the RDP session keep-alive feature/settings currently in Royal TSX over to Royal TS? This is a critical feature for some of my workflows. Unfortunately, I am sometimes forced to work in Windows (with Royal TS) and so I can't access the features in Royal TSX. Thank you.