Preferred approach is to use RDP Wrapper, the newest Git version 1.6.2. For “not supported” issue in “listener state”, just modify the ini file. Take Win 10: 1909 version as example, add the following into ini file, as termsrv.dll version is 10.0.18362.267:
[10.0.18362.267]
LocalOnlyPatch.x86=1
LocalOnlyOffset.x86=B7D06
LocalOnlyCode.x86=jmpshort
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=82FB5
LocalOnlyCode.x64=jmpshort
SingleUserPatch.x86=1
SingleUserOffset.x86=50535
SingleUserCode.x86=nop
SingleUserPatch.x64=1
SingleUserOffset.x64=0DBFC
SingleUserCode.x64=Zero
DefPolicyPatch.x86=1
DefPolicyOffset.x86=50269
DefPolicyCode.x86=CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64=1
DefPolicyOffset.x64=1FE15
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
SLInitHook.x86=1
SLInitOffset.x86=5A77A
SLInitFunc.x86=New_CSLQuery_Initialize
SLInitHook.x64=1
SLInitOffset.x64=22DDC
SLInitFunc.x64=New_CSLQuery_Initialize[10.0.18362.267-SLInit]
bInitialized.x86 =D577C
bServerSku.x86 =D5780
lMaxUserSessions.x86 =D5784
bAppServerAllowed.x86 =D578C
bRemoteConnAllowed.x86=D5790
bMultimonAllowed.x86 =D5794
ulMaxDebugSessions.x86=D5798
bFUSEnabled.x86 =D579CbInitialized.x64 =F6A8C
bServerSku.x64 =F6A90
lMaxUserSessions.x64 =F6A94
bAppServerAllowed.x64 =F6A9C
bRemoteConnAllowed.x64=F6AA0
bMultimonAllowed.x64 =F6AA4
ulMaxDebugSessions.x64=F6AA8
bFUSEnabled.x64 =F6AAC
- run CMD as adiministrator
- net stop termservice
- replace the old ini with new one
- net start termservice
Another approach is to edit termsrv.dll with Tiny Hexer. You need append administrator the trustedinstaller privilege to back up and edit, followed by disabling Win 10 update. Although the find phrase is different for different version, the replace phrase is the same.
By default the original session will be kicked out by the current remote login session. You can have a separated session by modifying with gpedit to set computer configuration-administration templates-windows components-RDS-RDS host-connections-restrict RDS users to a single RDS session to disabled. However, a separated new session will start when locally switching back to the original session from another account’s session. Some programs already run in the original session can’t be started again, especially Edge. Better to enable restriction as default as concurrently working as the same account has been regarded as team working, now by way of Cloud.
4 cases for RDP summarized here: