A while ago I was doing a large VSI project in a XenApp environment. While the results were not what we expected, I wanted to rule out that the bottleneck was XenApp itself. So using RDP as a connection protocol instead of ICA.
After doing some changes on the servers I tried to logon using MSTSC. It gave me a nice error message and didn’t allow me to connect.
Now, tracing back my steps, I figured that the last change I did on the servers was to uninstall XenApp 6. I didn’t have access to vCenter (these were virtual machines) and RDP was obviously not working, which made troubleshooting difficult. I didn’t want to redeploy these machines, since that took quite some time at this customer (and we were already under time pressure).
Long story short, uninstalling XenApp 6 broke RDP on those servers. During the installation of XenApp, the configuration of RDP is modified, normally that modification is reverted when you uninstall XenApp. In my case, it didn’t revert. There are 2 ways to fix it. The easiest way is to restore the correct registry value, another way is to recreate the RDP connection itself.
Restore the correct registry value
Like I said, during installation of XenApp, the setup modifies the RDP connection. These modifications weren’t reverted when I uninstalled XenApp again. Luckily, the original values are stored in a backup registry key during installation, so restoring them is only a matter of copying the correct value.
If you have console access to the server, you can do these steps locally. But if you, like me, don’t have access, you can use remote registry to access the server’s registry:
- Start regedit on a server
- Click File > Connect Network Registry
- Enter the XenApp server name and press “OK”
- The registry of the server should now appear in regedit
The RDP connection settings are stored in the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
Two values are of importance:
- LoadableProtocol_Object (REG_SZ)
- CitrixBackupRdpTcpLoadableProtocolObject (REG_SZ)
The value of “LoadableProtocol_Object” is the main problem, after XenApp installation this is modified to “RPM.CtxRdpProtocolManager”. The original value is stored in “CitrixBackupRdpTcpLoadableProtocolObject” (this should be “{18b726bb-6fe6-4fb9-9276-ed57ce7c7cb2}”). During uninstall, the value of “CitrixBackupRdpTcpLoadableProtocolObject” should be copied back to “LoadableProtocol_Object” (which didn’t happen in my case).
So copy the value of “CitrixBackupRdpTcpLoadableProtocolObject” to “LoadableProtocol_Object” and RDP should start working immediately. If it’s not working immediately, try restarting the “Remote Desktop Services” service on the server. The value “CitrixBackupRdpTcpLoadableProtocolObject” can be deleted after copying the data.
Reconfigure RDP Connection
Recreating the RDP connection through “Remote Desktop Session Host Configuration” on the server will reset all values for the RDP connection to default. This can either be done from the server itself (logging on to the console), or through remote management (from another server).
Start the “Remote Desktop Session Host Configuration” by clicking Start > Administrative Tools > Remote Desktop Services > Remote Desktop Session Host Configuration. If you’re configuring remotely, right-click “RD Session Host Configuration” in the left pane and click “Connect to Remote Desktop Session Host Server”.
Enter the server name and click OK.
In the middle pane, under “Connections”, there’s an entry called “RDP-Tcp”. Highlight this entry and press “Delete” in the right pane (click “Yes” to the confirmation question).
The connection is removed, so probably there are no connections displayed in the connections list. Now click “Create New Connection” in the right pane, this will start the Remote Desktop Services Connection Wizard.
Click “Next”.
Enter “RDP-Tcp” as the name of the connection, the connection type should be “Microsoft RDP 7.1” (in my case, it’s the only option). The comment field can be left empty. Click “Next” again.
Select “All network adapters configured with this protocol” for network adapter and set the number of concurrent connections to “Unlimited connections” (these are the default values). Click “Next”.
Review your settings and press “Finish” to create the RDP connection.
The connection is now listed in your connections list again. RDP connections to your server should be working immediately again, if not, try to restart the “Remote Desktop Services” service on the server.
Version
The server which showed this issue was a Windows Server 2008 R2 machine, installed with XenApp 6 Hotfix Rollup Pack 1. I could reproduce this in my lab environment using HRP1, but the issue was not there without HRP1.
Thanks!
Ran into the exact same problem and was losing my mind trying to figure out why TS wasn’t listening after uninstalling XenApp. Worked for me. Thanks so much, you saved me a few grey hairs.
Just saved me a complete reinstall with this!
W2K8R2 with Xenapp6, with hotfixes:
001 XA600W2K8R2X64001
009 XA600W2K8R2X64009
012 XA600W2K8R2X64012
018 XAE600W2K8R2X64018
021 XA600W2K8R2X64021
029 XA600W2K8R2X64029
After uninstall my RDP no longer functioned as described above
Many thanks for this helpful article.
I wasted two days troubleshooting RDP in Windows after uninstallation of XenApp6
Wonderful post. Same problem after removing XenApp 6.5. glad you posted this. Saved me a reinstall of Windows.
Thank you very much for this valuable article!
Thanks! Worked perfectly!
Thanks, Floris! I ran into the same issue after uninstalling XenApp 6.5 and the solution worked perfectly!
Again, really helpful article. I never want to go near Citrix again! You saved me a lot of time and this is definitely worth a few beers if you’re in Staten Island NY anytime. 🙂
After following registry solution.. issue fixed. Thanks
Since we were still running xenapp 6 until today, this saved my life! Thank you Floris!
Thanks that helped a lot!
Thanks, this has just fixed an issue ive been working on for a few hours!
Thanks! You saved my day