Thursday, September 12, 2013

[RESOLVED] Windows 8 Remote Desktop Client Crash

I've been running Windows 8 in various forms as long as it's been available to MSDN subscribers and even with 8.1 about to release, MS has continually failed to address a major crash issue.

At first I figured it was a remnant of my forced upgrade from Windows 7 to 8 beta/preview/rtm etc. But when I started Googling in July of 2013, I discovered that I wasn't alone. Many were reporting issues with remote printers that could be resolved by either deselecting "Printers" on the "Local Resources" tab while others indicated that changing the default printer would help. Still others reported having to uninstall certain printer drivers.

Alas, these suggestions made no difference for me so I started digging. After downloading what I understood to be the Win7x64 binaries (turns out they weren't which was a blessing in disguise) and trying to run it with the same error, I gained a new perspective on the issue which was wrong, but still led me in the right direction.

Event viewer reported Event ID 1000 on Source Application Error. In the details I found the Faulting Application Path: %windir%\system32\mstsc.exe

I started investigating and discovered that hardlinks were being used (I have Link Shell Extension installed from http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html). When I executed the other enumerated file and got the same error but saw a different Faulting Application Path and the same Faulting application module (NTDLL.DLL), I started to suspect that the issue wasn't MSTSC itself so much as the context it was running it. The other path (specific to x64 install) was %windir%\WinSxS\amd64_microsoft-windows-t..minalservicesclient_31bf3856ad364e35_6.2.9200.16384_none_a6a5f4f9aadbc5f5 (this is where I had to adjust settings).

To cut to the chase, my suspicions led me to start playing with the compatibility settings and "Run As Administrator" and after thinking I had found the magical combination to run mstsc.exe at the amd64 specific path, I tried my "Remote Desktop Connection" start menu shortcut only to find that the error still existed.

UPDATE: Turns out that I had an instance running in the background and when I closed it, the crashes returned which led me to my final solution. Since I'd replaced my Start Menu shortcut, I had full permissions to modify the shortcut so I went to the compatibility tab and set "Run as Administrator" again and the crashes were once more gone. It appears the solution might be as simple as right-clicking your existing shortcut and using the Run as Administrator context menu item. Can anyone confirm it to be that simple or if the shortcut must be replaced to point directly to the instance under WinSxS?

In the end, I resolve the issue but can't even explain how. I CAN tell you what I did in general terms.

  1. I changed the owner of the amd_64_microsoft-windows-t..minalservicesclient_ folder to myself from TrustedInstaller.
  2. I granted myself FULL permission on the folder.
  3. I tested
  4. I changed compatibility settings and Run As Administrator on the WinSxS instance of MSTSC.exe
  5. I tested
  6. I undid the compatibility settings.
  7. I tested
  8. I replaced my Start Menu shortcut
  9. I tested
  10. I reverted owner to NT Service\TrustedInstaller
  11. I tested
Somewhere in there the problem was resolved and even though I believe everything except the shortcut back to its original state, the problem has remained resolved.

I wish I had a cleaner solution and perhaps once I try to repeat the process on my laptop later I will have a better answer, but for now, this works for me. Even though MS hasn't resolved the problem in some years, I can no use Remote Desktop the way it was intended.




Followers