Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

ข้อผิดพลาดภายใน: แก้ไขปัญหาการเชื่อมต่อ Remote Desktop

ผมได้รับข้อความแจ้งเตือนแปลกๆ ว่า An internal error has occurred เมื่อพยายามเชื่อมต่อจาก Windows 10 ไปยังเซิร์ฟเวอร์ RDSH ที่เพิ่งติดตั้ง Windows Server 2012 R2 ผ่าน RDP เมื่อไม่กี่วันก่อนการเชื่อมต่อ Remote Desktop ทำงานได้ปกติ แต่หลังจากติดตั้งและกำหนดค่า RemoteApps พร้อมรีสตาร์ทเซิร์ฟเวอร์ ผมจึงไม่สามารถเชื่อมต่อกับเดสก์ท็อปของเซิร์ฟเวอร์ได้ แม้ว่า Remote Desktop Services จะดูเหมือนทำงานอยู่ เนื่องจากระบบยังคงขอรหัสผ่านเมื่อเชื่อมต่อ

ตามที่เข้าใจ ข้อความ An internal error has occurred บนคอนโซล RDP อาจเกิดขึ้นในหลายสถานการณ์ และอาจเกิดจากปัญหาทั้งฝั่งเซิร์ฟเวอร์และไคลเอ็นต์ ในบทความนี้ผมพยายามรวบรวมวิธีแก้ไขทั้งหมดรวมถึงสถานการณ์ที่ช่วยแก้ปัญหาของผม

ข้อผิดพลาดภายใน: แก้ไขปัญหาการเชื่อมต่อ Remote Desktop

ขั้นแรก ตรวจสอบให้แน่ใจว่าพอร์ต 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

ข้อผิดพลาดภายใน: แก้ไขปัญหาการเชื่อมต่อ Remote Desktop

ตรวจสอบสถานะ Remote Desktop Services บนเซิร์ฟเวอร์ระยะไกลและรีสตาร์ทบริการ สามารถทำได้จากระยะไกลผ่านคอนโซล Services.msc (ใช้ตัวเลือก "Connect to another computer") แต่ใช้ PowerShell จะง่ายกว่า:

(Get-Service TermService -ComputerName ny-rds1).status

บริการกำลังทำงานอยู่ ลองรีสตาร์ทดู:

Get-Service TermService -ComputerName ny-rds1| Restart-Service –force –verbose

ข้อผิดพลาดภายใน: แก้ไขปัญหาการเชื่อมต่อ Remote Desktop

แต่วิธีนี้ไม่แก้ปัญหา

นี่คือวิธีแก้ไขอื่นๆ ที่ผมพบจากเว็บ:

  • หากเห็น EventID 1057 ในล็อก TerminalServices-RemoteConnectionManager (The RD Session Host Server has failed to create a new self signed certificate to be used for RD Session Host Server authentication on SSL connections) ให้ไปที่โฟลเดอร์ C:\ProgramData\Microsoft\Crypto\RSA เปลี่ยนชื่อโฟลเดอร์ Machinekeys เป็น Machinekeys_bak และรีสตาร์ท TermService;
  • ยังพบว่า ปัญหา RDP "An internal error has occurred" เกิดขึ้นใน Windows 10 1809 หากนโยบาย Configure H.264/AVC hardware encoding for Remote Desktop connections ถูกเปิดใช้งานบนคอมพิวเตอร์ระยะไกล (อยู่ในส่วน GPO: Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Environment) วิธีแก้คือปิดโปรโตคอล UDP สำหรับ RDP โดยสร้างพารามิเตอร์ fClientDisableUDP ค่า 1 ในคีย์รีจิสทรี HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client;
  • หากข้อผิดพลาดปรากฏ ทันที หลังกด Connect (การเชื่อมต่อถูกปฏิเสธทันทีโดยเซิร์ฟเวอร์) ลองเพิ่มขีดจำกัดการเชื่อมต่อ RDP ที่ค้างอยู่สูงสุด (MaxOutstandingConnections) ใน Windows 10 ค่าเริ่มต้นคือ 100 แต่ Windows Server คือ 3000 รัน regedit.exe และสร้างพารามิเตอร์ DWORD MaxOutstandingConnections ค่า 10000 ในคีย์ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\. (เคาน์เตอร์ RDP พิเศษนับการล็อกอินที่ไม่ถูกต้อง และเมื่อถึงค่าที่กำหนด การเข้าถึง RDP จะถูกบล็อก)

ไม่มีสถานการณ์ข้างต้นตรงกับกรณีของผม โดยบังเอิญพบว่าคอมพิวเตอร์อื่นเชื่อมต่อเซิร์ฟเวอร์ RDS นี้ได้ปกติ แสดงว่าปัญหาอยู่ที่คอมพิวเตอร์ของผม ไม่ใช่เซิร์ฟเวอร์ Remote Desktop

ผมล้างประวัติการเชื่อมต่อ 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"

ข้อผิดพลาดภายใน: แก้ไขปัญหาการเชื่อมต่อ Remote Desktop

จากนั้นรีสตาร์ทคอมพิวเตอร์ และข้อผิดพลาดการเชื่อมต่อ RDP หายไป!