ฉันเห็นข้อความแปลกๆ “An internal error has occurred
” เมื่อพยายามเชื่อมต่อจาก Windows 10 กับเซิร์ฟเวอร์ RDSH ที่เพิ่งปรับใช้ซึ่งรัน Windows Server 2012 R2 โดยใช้ RDP เมื่อเร็ว ๆ นี้เมื่อวานนี้ การเชื่อมต่อเดสก์ท็อประยะไกลกับเซิร์ฟเวอร์ทำงานได้ดี แต่หลังจากการติดตั้งและการกำหนดค่าของ RemoteApps และการรีสตาร์ทเซิร์ฟเวอร์ ฉันไม่สามารถเชื่อมต่อกับเดสก์ท็อปได้ เห็นได้ชัดว่า Remote Desktop Services ใช้งานได้ เนื่องจากผู้ใช้จะได้รับแจ้งให้ใส่รหัสผ่านเมื่อเชื่อมต่อ
ตามที่ฉันเข้าใจ ข้อความคอนโซล RDP “เกิดข้อผิดพลาดภายใน ” อาจปรากฏขึ้นในบางกรณีและเกิดจากปัญหาเซิร์ฟเวอร์เดสก์ท็อประยะไกลและไคลเอนต์ ในบทความนี้ ฉันพยายามอธิบายวิธีแก้ปัญหาและสถานการณ์ที่ช่วยฉันได้ทั้งหมด
ก่อนอื่น ตรวจสอบให้แน่ใจว่าพอร์ต RDP 3389 ยอมรับการเชื่อมต่อบนเซิร์ฟเวอร์ RDS ของคุณ และการเชื่อมต่อไม่ถูกบล็อกโดยไฟร์วอลล์ (
Test-NetConnection your_rdp_server –port 3389
). หลังจากศึกษาบันทึกการเชื่อมต่อ RDP บนเซิร์ฟเวอร์ RDS แล้ว ฉันไม่พบข้อผิดพลาดใดๆ บันทึกการใช้งาน Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational พบว่ามีการสร้างเซสชัน RDP:
The server accepted a new TCP connection from client 192.168.1.60:64379. Connection RDP-Tcp#4 created
อย่างไรก็ตาม เซสชัน RDP สิ้นสุดลงในภายหลังโดยไม่มีข้อผิดพลาด:
The server has terminated main RDP connection with the client. The disconnect reason is 0
ตรวจสอบสถานะของบริการเดสก์ท็อประยะไกลบนเซิร์ฟเวอร์ระยะไกลของคุณและเริ่มบริการใหม่ คุณสามารถทำได้จากระยะไกลผ่านคอนโซล Services.msc (ใช้ตัวเลือก “เชื่อมต่อกับคอมพิวเตอร์เครื่องอื่น”) แต่การตรวจสอบสถานะบริการและเริ่มต้นใหม่โดยใช้ PowerShell จะง่ายกว่า:
(Get-Service TermService -ComputerName ny-rds1).status
บริการกำลังทำงาน มาเริ่มกันใหม่:
Get-Service TermService -ComputerName ny-rds1| Restart-Service –force –verbose
แต่สิ่งนี้ไม่ได้แก้ปัญหา
ต่อไปนี้เป็นวิธีแก้ไขปัญหาอื่นๆ ที่ฉันพบในเว็บ:
- หากคุณเห็น EventID 1057 ในบันทึกเหตุการณ์ TerminalServices-RemoteConnectionManager (เซิร์ฟเวอร์โฮสต์ของเซสชัน RD ล้มเหลวในการสร้างใบรับรองที่ลงชื่อด้วยตนเองใหม่เพื่อใช้สำหรับการตรวจสอบสิทธิ์เซิร์ฟเวอร์โฮสต์ของเซสชัน RD บนการเชื่อมต่อ SSL ) ไปที่โฟลเดอร์ C:\ProgramData\Microsoft\Crypto\RSA เปลี่ยนชื่อ Machinekeys โฟลเดอร์ลงใน Machinekeys_bak และรีสตาร์ท TermService
- ฉันยังพบว่าปัญหา RDP “เกิดข้อผิดพลาดภายใน” เกิดขึ้นใน Windows 10 1809 หากกำหนดค่าการเข้ารหัสฮาร์ดแวร์ H.264/AVC สำหรับการเชื่อมต่อเดสก์ท็อประยะไกล นโยบายถูกเปิดใช้งานบนคอมพิวเตอร์ระยะไกล (อยู่ในส่วน GPO ต่อไปนี้:การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแล -> ส่วนประกอบ Windows -> บริการเดสก์ท็อประยะไกล -> โฮสต์เซสชันเดสก์ท็อประยะไกล -> สภาพแวดล้อมเซสชันระยะไกล) ในการแก้ปัญหา คุณเพียงแค่ปิดการใช้งานโปรโตคอล UDP สำหรับ RDP โดยสร้าง fClientDisableUDP พารามิเตอร์ที่มีค่า 1 ในรีจิสตรีคีย์ HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client;
- หากข้อผิดพลาดปรากฏขึ้น ทันที หลังจากคลิกเชื่อมต่อ (ดูเหมือนว่าความพยายามในการเชื่อมต่อจะถูกปฏิเสธโดยเซิร์ฟเวอร์เดสก์ท็อประยะไกลในทันที) ให้พยายามเพิ่มขีดจำกัดการเชื่อมต่อ RDP ที่คงค้างสูงสุด ใน Windows 10 SKUs โดยค่าเริ่มต้นถูกตั้งค่าเป็น 100 แต่บน Windows Server คือ 3000 เรียกใช้ regedit.exe และสร้างพารามิเตอร์รีจิสทรี DWORD MaxOutstandingConnections ด้วยมูลค่า 10000 ในคีย์ reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ (ตัวนับ RDP พิเศษพิจารณาการเข้าสู่ระบบ RDP ที่ไม่ถูกต้องนัก และเมื่อถึงค่า MaxOutstandingConnections ที่ระบุ การเข้าถึง RDP จะถูกบล็อก)
ไม่มีสถานการณ์ใดที่อธิบายไว้ข้างต้นที่ใช้ได้ในกรณีของฉัน ในบางครั้ง ฉันพบว่าคอมพิวเตอร์เครื่องอื่นไม่พบปัญหาใดๆ เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ RDS นี้ หมายความว่าคอมพิวเตอร์ของฉันมีปัญหา ไม่ใช่กับเซิร์ฟเวอร์เดสก์ท็อประยะไกล
ฉันล้างประวัติการเชื่อมต่อ RDP ในรีจิสตรีคีย์แล้ว HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers และรีเซ็ตแคช RDP ใน C:\Users\%Username%\AppData\Local\Microsoft\Terminal Server Client\Cache (ก่อน ดำเนินการ ปิดเซสชัน mstsc.exe ที่รันอยู่ทั้งหมด):
del "C:\Users\%Username%\AppData\Local\Microsoft\Terminal Server Client\cache"
จากนั้นฉันก็รีสตาร์ทคอมพิวเตอร์ และข้อผิดพลาดในการเชื่อมต่อ RDP หายไป!