遠端桌面 錯誤:出現了內部錯誤
今天被問到一個奇妙的問題
透過mstsc.exe連線Windows時一直出現 錯誤:出現的了內部錯誤的問題
一開始想說應該是Server的RDP service發瘋了,重啟看看
卻發現重啟只能解決當下的問題,過一小段時間又會發生一樣的問題
而錯誤訊息少到連有點軟的KB都明確地確定是什麼問題導致
搜尋了一圈,大致上有幾個解法
- 重啟RDP Service,同時用管理員權限執行cmd
輸入指令netsh winsock reset
後重啟電腦
恩,測試了,看起來也只是暫時正常
過沒多就服務就又回到內部錯誤的錯誤訊息卡住 - 將RDP的security layer設定為RDP
開啟gpedit.msc
找到電腦設定>系統管理範本>Windows元件>遠端桌面服務>遠多=端桌面工作階段主機>安全性
找到需要對端(RDP)連線使用特定安全層
將設定改為”已啟用”,下方選擇”RDP”
設定完成後看起來就解決問題了,可以恢復登入,只是變成傳統WinXP時代的畫面
跳到登入畫面後輸入帳號密碼
看似解決了問題,然而有點軟的KB中的說明寫到
“不建議使用原始 RDP 加密 (相對於 SSL 加密)”
看到這只好再找其他方法(畢竟總不能讓人不小心就把主機給端了吧) - 重新檢查RDP安全性相關設定
在有點軟的AzureKB中,找到了這次的最終解法
(有點軟你的KB編寫方式也真神秘…居然是要去Azure那邊才找的到)
該篇KB中提到此問題可能會因為下列原因而發生:虛擬機器可能已受到攻擊。無法存取本機 RSA 加密金鑰。TLS 通訊協定已停用。憑證已損毀或過期。
依照該篇的說明依序執行
開啟Powershell更新 RDP 自我簽署憑證Import-Module PKI Set-Location Cert:\LocalMachine $RdpCertThumbprint = 'Cert:\LocalMachine\Remote Desktop\'+((Get-ChildItem -Path 'Cert:\LocalMachine\Remote Desktop\').thumbprint) Remove-Item -Path $RdpCertThumbprint Stop-Service -Name "SessionEnv" Start-Service -Name "SessionEnv"
啟用所有支援的 TLS 版本
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" /v Enabled /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" /v Enabled /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" /v Enabled /t REG_DWORD /d 1 /f
經過以上操作,該問題就不再出現了,看起來是因為憑證跟TLS版本的問題造成
私心希望有點軟可以在錯誤訊息上面多給點資訊阿…
每次處理問題都搞得好像在通靈一樣😅