About Terminal Server, Citrix, Delphi and other stuff
I needed to connect remotely via Remote Desktop to a Windows Server 2012 machine.
I received an rdp file that was configured to use an RD Gateway server:
However when trying to connect from my Windows 7 laptop (x64) machine, I got the following error message:
Followed by this message when I tried to connect again:
After some troubleshooting I decided to test the connection from a virtual machine and to my surprise it worked fine there.
Knowing that I was able to connect to other machines with Remote Desktop from my laptop without problems there had to be a difference.
I compared the versions of mstsc.exe and mstscax.dll and noticed that the version of my laptop was newer:
I copied mstsc.exe and mstscax.dll from the virtual machine to my laptop in a separate folder. When starting the copied mstsc.exe I got an error message about missing mui (multi language) files:
To solve this I created a subfolder en-US and copied the files mstsc.exe.mui and mstscax.dll.mui from the virtual machine.
Mstsc now launched but a connection using the specified RDP file yielded yet another error:
I found the error message string in mstsc.exe.mui with a resource id of 13349:
I opened mstsc.exe in Ida Pro and searched for 13349 but no hits. I then searched on 3425 which is the hex value of 13349 and then I got a hit in a function called CContainerWnd::StartConnection:
So if IsProxySupportEnabled returns FALSE, this message is displayed. The IsProxySupportEnabled function doesn’t do much, it just loads a DLL named AALibrary:
Clicking on in the code showed some traceoutput that identifies AALibrary as aaclient.dll:
I copied over aaclient.dll to the same folder as mstsc.exe and aaclient.dll.mui to the en-US subfolder and finally it worked!
For you convenience I have attached a zipped copy of the mstsc files.mstsc.exe build 6.1.7600.16385 (181)
.NET .NET FrameWork Active Directory Altiris Automation Manager bug Citrix Dell Delphi Excel Exchange Exchange2003 Exchange2010 Hack HP iOS Java LinkedIn Linux Lync MSI Office Office 2010 Outlook Passat Password PowerPoint PowerShell RES RNS510 SasLibEx Security Terminal Server ThinApp TSAdminEx Unattended VBS VCDS Vista Visual Basic VMWare Volkswagen Windows PE Wordpress XenApp