Ran into this problem this morning when installing Service Pack 1 for Windows 2008 R2.
Service Pack installs successfully, but after we couldn’t login via remote desktop services.
Checked the eventlog remotely and found the following in the application log.
Event ID: 1000 reports an application error…
Faulting application name: svchost.exe_TermService, version: 6.1.7600.16385, time stamp: 0x4a5bc3c1 Faulting module name: rdpcorekmts.dll, version: 6.1.7600.16952, time stamp: 0x4f1f9e66 Exception code: 0xc0000005 Fault offset: 0x000000000000a793 Faulting process id: 0x1810 Faulting application start time: 0x01cda141e1e73a0d Faulting application path: C:\Windows\System32\svchost.exe Faulting module path: C:\Windows\system32\rdpcorekmts.dll Report Id: 7b98872b-0d35-11e2-bbf8-2c768aaa6162
After a quick G-search I found the following thread;
And the following fix:
You need to run this with a user that is an admin on the target system.
Copy PsExec and rdpcorekmts.dll (the new version) to a folder.
Create a file named servernames.txt and add the name of the server(s) you want to fix.
Create a start.cmd file edit it and add the following:
@echo off Echo **************************************************** echo * This process will update and change the file rdpcorekmts. * echo * If you don’t want to do that, ‘X’ out now * echo *************************************************** pause :stop remote desktop services for /f %%i in (servernames.txt) do psexec \\%%i net stop “Remote Desktop Services” /y :Take Ownership for /f %%i in (servernames.txt) do psexec \\%%i takeown /F c:\windows\system32\rdpcorekmts.dll :Change permissions to full for /f %%i in (servernames.txt) do psexec \\%%i icacls c:\windows\system32\rdpcorekmts.dll /grant administrators:F :Copy in newer version for /f %%i in (servernames.txt) do copy rdpcorekmts.dll \\%%i\c$\windows\system32\ :Change permissions back to read-only for /f %%i in (servernames.txt) do psexec \\%%i icacls c:\windows\system32\rdpcorekmts.dll /grant administrators:R :start the service back up for /f %%i in (servernames.txt) do psexec \\%%i net start “Remote Desktop Services” /y Echo*************************************************** echo * Remove the names of the affected servers in the file Servernames * echo*************************************************** Echo *Should be all done now. * echo ************************** pause exit
Doubleclick start.cmd
You should now be able to login to your server.