Remote Desktop Protocol (RDP) เป็นโปรโตคอลที่เป็นกรรมสิทธิ์ซึ่งพัฒนาโดย Microsoft ซึ่งให้อินเทอร์เฟซแบบกราฟิกแก่ผู้ใช้เพื่อเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นผ่านการเชื่อมต่อเครือข่าย ผู้ใช้ใช้ซอฟต์แวร์ไคลเอ็นต์ RDP เพื่อจุดประสงค์นี้ ในขณะที่คอมพิวเตอร์อีกเครื่องต้องเรียกใช้ซอฟต์แวร์เซิร์ฟเวอร์ RDP ในโพสต์นี้ เราจะสำรวจวิธีแก้ปัญหาการเชื่อมต่อเดสก์ท็อประยะไกลทั่วไป บน Windows 11/10
แก้ไขปัญหาการเชื่อมต่อเดสก์ท็อประยะไกล
ลองทำตามขั้นตอนการแก้ปัญหาด้านล่างเมื่อไคลเอ็นต์เดสก์ท็อประยะไกลไม่ทำงานหรือไม่สามารถเชื่อมต่อกับเดสก์ท็อประยะไกล แต่ไม่มีข้อความหรืออาการอื่นๆ ที่จะช่วยระบุสาเหตุ
1] ตรวจสอบสถานะของโปรโตคอล RDP บนคอมพิวเตอร์ในพื้นที่
คุณจะต้องเปิดใช้งาน Remote Desktop เพื่อตรวจสอบและเปลี่ยนสถานะของโปรโตคอล RDP ในเครื่องคอมพิวเตอร์ คุณยังสามารถเปิดใช้งานเดสก์ท็อประยะไกลโดยใช้ Command Prompt หรือ PowerShell
2] ตรวจสอบสถานะของโปรโตคอล RDP บนคอมพิวเตอร์ระยะไกล
หากต้องการตรวจสอบและเปลี่ยนสถานะของโปรโตคอล RDP บนคอมพิวเตอร์ระยะไกล ให้ใช้การเชื่อมต่อรีจิสทรีของเครือข่าย
เนื่องจากเป็นการดำเนินการรีจิสทรี ขอแนะนำให้สำรองข้อมูลรีจิสทรีหรือสร้างจุดคืนค่าระบบตามมาตรการป้องกันที่จำเป็น เมื่อเสร็จแล้วคุณสามารถดำเนินการดังนี้:
- กดปุ่ม Windows + R เพื่อเรียกใช้กล่องโต้ตอบเรียกใช้
- ในกล่องโต้ตอบ Run ให้พิมพ์
regedit
แล้วกด Enter เพื่อเปิด Registry Editor - ในตัวแก้ไขรีจิสทรี เลือก ไฟล์ จากนั้นเลือก เชื่อมต่อรีจิสทรีเครือข่าย .
- ใน เลือกคอมพิวเตอร์ กล่องโต้ตอบ ให้ป้อนชื่อคอมพิวเตอร์ระยะไกล
- เลือก ตรวจสอบชื่อ
- เลือก ตกลง .
- ถัดไป นำทางหรือข้ามไปยังเส้นทางคีย์รีจิสทรีด้านล่าง:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
- ที่ตำแหน่ง ในบานหน้าต่างด้านขวา ให้ดับเบิลคลิกที่ fDenyTSConnections คีย์เพื่อแก้ไขคุณสมบัติของมัน
- หากต้องการเปิดใช้งาน RDP ให้ตั้งค่าข้อมูลค่าของ fDenyTSConnections จาก 1 ถึง 0 .
ค่า 0 หมายถึงเปิดใช้งาน RDP ในขณะที่ค่า 1 หมายถึง RDP ถูกปิดใช้งาน
เกี่ยวข้อง :ตัวเลือกเดสก์ท็อประยะไกลเป็นสีเทาใน Windows 10
3] ตรวจสอบว่า Group Policy Object (GPO) กำลังบล็อก RDP บนคอมพิวเตอร์ท้องถิ่นหรือไม่
GPO อาจแทนที่การตั้งค่าระดับคอมพิวเตอร์ หากคุณไม่สามารถเปิด RDP ในอินเทอร์เฟซผู้ใช้หรือค่าของ fDenyTSConnections เปลี่ยนกลับเป็น 1 หลังจากเปลี่ยนแล้ว
ในการตรวจสอบการกำหนดค่านโยบายกลุ่มในคอมพิวเตอร์ท้องถิ่น ให้ทำดังต่อไปนี้:
- กด แป้น Windows + R เพื่อเรียกใช้กล่องโต้ตอบเรียกใช้
- ในกล่องโต้ตอบ Run ให้พิมพ์
cmd
แล้วกด CTRL + SHIFT + ENTER เพื่อเปิด Command Prompt ในโหมด admin/elevated - ในหน้าต่างพร้อมท์คำสั่ง ให้พิมพ์คำสั่งด้านล่าง แล้วกด Enter
gpresult /H c:\gpresult.html
- เมื่อคำสั่งทำงาน ให้เปิด gpresult.html
- ใน Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections ให้ค้นหา อนุญาตให้ผู้ใช้เชื่อมต่อจากระยะไกลโดยใช้บริการเดสก์ท็อประยะไกล นโยบาย
หากการตั้งค่าสำหรับนโยบายนี้เป็น เปิดใช้งาน , Group Policy ไม่ได้บล็อกการเชื่อมต่อ RDP หากการตั้งค่าสำหรับนโยบายนี้เป็น ปิดใช้งาน , ตรวจสอบ ชนะ GPO . นี่คือ GPO ที่บล็อกการเชื่อมต่อ RDP
4] ตรวจสอบว่า GPO กำลังบล็อก RDP บนคอมพิวเตอร์ระยะไกลหรือไม่
ในการตรวจสอบการกำหนดค่านโยบายกลุ่มบนคอมพิวเตอร์ระยะไกล ให้เรียกใช้คำสั่งด้านล่างพร้อมท์ CMD ที่ยกระดับ:
gpresult /S <computer name> /H c:\gpresult-<computer name>.html
ไฟล์ที่คำสั่งนี้สร้าง (gpresult-
5] แก้ไข GPO ที่ปิดกั้น
คุณสามารถแก้ไขการตั้งค่าเหล่านี้ได้ใน Group Policy Object Editor (GPE) และ Group Policy Management Console (GPMC)
หากต้องการแก้ไขนโยบายการบล็อก ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้:
ใช้ GPE ทำสิ่งต่อไปนี้:
- กด แป้น Windows + R เพื่อเรียกใช้กล่องโต้ตอบเรียกใช้
- ในกล่องโต้ตอบ Run ให้พิมพ์
gpedit.msc
แล้วกด Enter เพื่อเปิด Group Policy Editor - ภายใน Local Group Policy Editor ให้ใช้บานหน้าต่างด้านซ้ายเพื่อไปยังเส้นทางด้านล่าง:
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
- ที่ตำแหน่ง ในบานหน้าต่างด้านขวา ให้ดับเบิลคลิกที่ อนุญาตให้ผู้ใช้เชื่อมต่อจากระยะไกลโดยใช้ Remote Desktop Services . เพื่อแก้ไขคุณสมบัติของมัน
- ตั้งค่านโยบายเป็น เปิดใช้งาน หรือ ไม่ได้กำหนดค่า .
- คลิก สมัคร> ตกลง แล้วออกไป
- ในคอมพิวเตอร์ที่ได้รับผลกระทบ ให้เปิดหน้าต่างพร้อมท์คำสั่งในฐานะผู้ดูแลระบบ และเรียกใช้คำสั่งด้านล่าง:
gpupdate /force
ใช้ GPMC ไปที่หน่วยขององค์กร (OU) ซึ่งใช้นโยบายการบล็อกกับคอมพิวเตอร์ที่ได้รับผลกระทบ และลบนโยบายออกจาก OU
6] ตรวจสอบสถานะของบริการ RDP
ทั้งในคอมพิวเตอร์ท้องถิ่น (ไคลเอนต์) และคอมพิวเตอร์ระยะไกล (เป้าหมาย) บริการต่อไปนี้ควรทำงาน:
- บริการเดสก์ท็อประยะไกล (TermService)
- ตัวเปลี่ยนเส้นทางพอร์ตโหมดผู้ใช้บริการเดสก์ท็อประยะไกล (UmRdpService)
บนคอมพิวเตอร์เครื่องใดเครื่องหนึ่ง หากบริการใดบริการหนึ่งหรือทั้งสองไม่ทำงาน ให้เริ่มบริการ
ทำดังต่อไปนี้:
- กด แป้น Windows + R เพื่อเรียกใช้กล่องโต้ตอบเรียกใช้
- ในกล่องโต้ตอบ Run ให้พิมพ์
services.msc
และกด Enter เพื่อเปิดบริการ - ในหน้าต่าง Services ให้เลื่อนและค้นหาทั้งบริการดังกล่าว
- ดับเบิลคลิกที่รายการเพื่อแก้ไขคุณสมบัติ
- ในหน้าต่างคุณสมบัติ คลิก เริ่ม ปุ่ม.
- คลิก ตกลง .
คุณยังสามารถใช้ PowerShell เพื่อจัดการบริการในเครื่องหรือจากระยะไกลได้ (หากคอมพิวเตอร์ระยะไกลได้รับการกำหนดค่าให้ยอมรับ cmdlet ของ PowerShell ระยะไกล)
7] ตรวจสอบสถานะของตัวฟัง RDP
กระบวนงานนี้ใช้ PowerShell เนื่องจาก cmdlet เดียวกันทำงานทั้งในเครื่องและจากระยะไกล สำหรับคอมพิวเตอร์ในระบบ คุณยังใช้พรอมต์คำสั่งที่มีสิทธิ์ระดับผู้ดูแลระบบได้
ในการเชื่อมต่อกับคอมพิวเตอร์ระยะไกล ให้ทำดังนี้:
- กด แป้น Windows + X เพื่อเปิดเมนู Power User
- แตะ A บนแป้นพิมพ์เพื่อเปิด PowerShell ในโหมดผู้ดูแลระบบ/โหมดยกระดับ
- ในคอนโซล PowerShell ให้พิมพ์คำสั่งด้านล่างแล้วกด Enter:
Enter-PSSession -ComputerName <computer name>
- ป้อน
qwinsta
.
หากรายการมี rdp-tcp ด้วยสถานะ ฟัง ตามที่แสดงในภาพด้านบน RDP listener กำลังทำงาน ข้ามไปที่การแก้ปัญหาขั้นตอนที่ 10] ด้านล่าง. ไม่เช่นนั้น คุณจะต้องส่งออกการกำหนดค่าตัวฟัง RDP จากคอมพิวเตอร์ที่ใช้งานได้
ทำดังต่อไปนี้:
- ลงชื่อเข้าใช้คอมพิวเตอร์ที่มีระบบปฏิบัติการเวอร์ชันเดียวกับคอมพิวเตอร์ที่ได้รับผลกระทบ และเข้าถึงรีจิสทรีของคอมพิวเตอร์เครื่องนั้น
- นำทางหรือข้ามไปที่รายการรีจิสตรีต่อไปนี้:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- ส่งออกรายการเป็นไฟล์ .reg
- คัดลอกไฟล์ .reg ที่ส่งออกไปยังคอมพิวเตอร์ที่ได้รับผลกระทบ
- หากต้องการนำเข้าการกำหนดค่า RDP listener ให้เปิดหน้าต่าง PowerShell ที่มีสิทธิ์ระดับผู้ดูแลระบบในคอมพิวเตอร์ที่ได้รับผลกระทบ (หรือเปิดหน้าต่าง PowerShell และเชื่อมต่อกับคอมพิวเตอร์ที่ได้รับผลกระทบจากระยะไกล)
เพื่อสำรองข้อมูลรายการรีจิสทรีที่มีอยู่ ให้ป้อน cmdlet ต่อไปนี้:
cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'
เพื่อลบรายการรีจิสตรีที่มีอยู่ ให้ป้อน cmdlets ต่อไปนี้:
Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force
เพื่อนำเข้ารายการรีจิสทรีใหม่แล้วเริ่มบริการใหม่ เรียกใช้ cmdlets ด้านล่าง แทนที่ <filename>
ตัวยึดตำแหน่งที่มีชื่อของไฟล์ .reg ที่ส่งออก
cmd /c 'regedit /s c:\<filename>.reg' Restart-Service TermService -Force
เมื่อดำเนินการ cmdlet เสร็จแล้ว คุณสามารถทดสอบการกำหนดค่าโดยลองเชื่อมต่อเดสก์ท็อประยะไกลอีกครั้ง หากยังไม่สามารถเชื่อมต่อได้ ให้รีสตาร์ทคอมพิวเตอร์ที่ได้รับผลกระทบ
หากคุณยังไม่สามารถเชื่อมต่อได้ ให้ดำเนินการตามขั้นตอนการแก้ไขปัญหาถัดไปซึ่งก็คือ ตรวจสอบสถานะของใบรับรองที่ลงนามด้วยตนเองของ RDP .
8] ตรวจสอบสถานะของใบรับรองที่ลงนามด้วยตนเองของ RDP
หากคุณยังไม่สามารถเชื่อมต่อได้ ให้ทำดังต่อไปนี้:
- กดปุ่ม ปุ่ม Windows + R เพื่อเรียกใช้กล่องโต้ตอบเรียกใช้
- ในกล่องโต้ตอบ Run ให้พิมพ์
mmc
แล้วกด Enter เพื่อเปิด Microsoft Management Console - คลิกที่ ไฟล์ เมนู
- เลือก เพิ่ม/ลบสแนปอิน .
- เลือก ใบรับรอง จากรายการสแน็ปอิน
- คลิก เพิ่ม .
- เมื่อคุณได้รับแจ้งให้เลือกที่เก็บใบรับรองเพื่อจัดการ ให้เลือก บัญชีคอมพิวเตอร์
- คลิก ถัดไป .
- เลือกคอมพิวเตอร์ที่ได้รับผลกระทบ
- คลิกปุ่ม เสร็จสิ้น ปุ่ม.
- คลิก ตกลง .
- ตอนนี้ ใน ใบรับรอง โฟลเดอร์ภายใต้ เดสก์ท็อประยะไกล ให้ลบใบรับรองที่ลงนามเองของ RDP
- ในคอมพิวเตอร์ที่ได้รับผลกระทบ ให้เริ่มบริการ Remote Desktop Services ใหม่
- รีเฟรชสแนปอินใบรับรอง
- หากยังไม่มีการสร้างใบรับรองที่ลงนามเองของ RDP ขึ้นใหม่ ให้ตรวจสอบการอนุญาตของโฟลเดอร์ MachineKeys
9] ตรวจสอบการอนุญาตของโฟลเดอร์ MachineKeys
ในคอมพิวเตอร์ที่ได้รับผลกระทบ ให้ทำดังต่อไปนี้:
- กด แป้น Windows + E เพื่อเปิด File Explorer
- นำทางไปยังเส้นทางไดเรกทอรีด้านล่าง:
C:\ProgramData\Microsoft\Crypto\RSA\
- ที่ตำแหน่ง ให้คลิกขวาที่ MachineKeys , เลือก คุณสมบัติ ให้เลือก ความปลอดภัย แล้วเลือก ขั้นสูง .
ตรวจสอบให้แน่ใจว่าได้กำหนดค่าการอนุญาตต่อไปนี้:
- Builtin\Administrators:การควบคุมทั้งหมด
- ทุกคน:อ่าน เขียน
10] ตรวจสอบพอร์ตฟัง RDP
ทั้งในคอมพิวเตอร์ท้องถิ่น (ไคลเอนต์) และคอมพิวเตอร์ระยะไกล (เป้าหมาย) ผู้ฟัง RDP ควรรับฟังบนพอร์ต 3389 ไม่ควรใช้แอปพลิเคชันอื่นใดที่ใช้พอร์ตนี้
หากต้องการตรวจสอบหรือเปลี่ยนพอร์ต RDP ให้ใช้ Registry Editor เพื่อเป็นการป้องกันไว้ก่อนในการสำรองข้อมูลรีจิสทรีหรือสร้างจุดคืนค่าระบบ ให้ทำดังนี้:
- เปิด Registry Editor เลือก ไฟล์ จากนั้นเลือก เชื่อมต่อรีจิสทรีเครือข่าย .
- ใน เลือกคอมพิวเตอร์ กล่องโต้ตอบ ให้ป้อนชื่อคอมพิวเตอร์ระยะไกล
- เลือก ตรวจสอบชื่อ
- เลือก ตกลง .
- ถัดไป นำทางหรือข้ามไปยังเส้นทางคีย์รีจิสทรีด้านล่าง:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- ที่ตำแหน่ง ในบานหน้าต่างด้านขวา ให้ดับเบิลคลิกที่ PortNumber รายการเพื่อแก้ไขคุณสมบัติ
- ในหน้าต่างคุณสมบัติ ถ้าฟิลด์ Value data มีค่าอื่นที่ไม่ใช่ 3389 เปลี่ยนเป็น 3389.
- คลิก ตกลง เพื่อบันทึกการเปลี่ยนแปลง
- เริ่มบริการ Remote Desktop Services ใหม่
11] ตรวจสอบว่าแอปพลิเคชั่นอื่นไม่ได้ใช้พอร์ตเดียวกัน
ทำดังต่อไปนี้:
- เปิด PowerShell ในโหมดยกระดับ
- หากต้องการเชื่อมต่อกับคอมพิวเตอร์ระยะไกล ให้เรียกใช้คำสั่งด้านล่าง:
Enter-PSSession -ComputerName <computer name>
ถัดไป ให้รันคำสั่งต่อไปนี้:
cmd /c 'netstat -ano | find "3389"'
- ค้นหารายการสำหรับพอร์ต TCP 3389 (หรือพอร์ต RDP ที่กำหนด) ที่มีสถานะ กำลังฟัง .
หมายเหตุ :ตัวระบุกระบวนการ (PID) สำหรับกระบวนการหรือบริการโดยใช้พอร์ตนั้นจะปรากฏใต้คอลัมน์ PID
- ในการตรวจสอบว่าแอปพลิเคชันใดกำลังใช้พอร์ต 3389 (หรือพอร์ต RDP ที่กำหนด) ให้ป้อนคำสั่งต่อไปนี้:
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
- ค้นหารายการสำหรับหมายเลข PID ที่เชื่อมโยงกับพอร์ต (จาก
netstat
เอาท์พุท) บริการหรือกระบวนการที่เกี่ยวข้องกับ PID นั้นจะปรากฏที่คอลัมน์ด้านขวา - หากแอปพลิเคชันหรือบริการอื่นที่ไม่ใช่ Remote Desktop Services (TermServ.exe) ใช้พอร์ต คุณสามารถแก้ไขข้อขัดแย้งได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
กำหนดค่าแอปพลิเคชันหรือบริการอื่นเพื่อใช้พอร์ตอื่น (แนะนำ)
ถอนการติดตั้งแอปพลิเคชันหรือบริการอื่น
กำหนดค่า RDP เพื่อใช้พอร์ตอื่น จากนั้นเริ่มบริการ Remote Desktop Services ใหม่ (ไม่แนะนำ)
12] ตรวจสอบว่าไฟร์วอลล์กำลังบล็อกพอร์ต RDP หรือไม่
คุณสามารถใช้ psping เครื่องมือเพื่อทดสอบว่าคุณสามารถเข้าถึงคอมพิวเตอร์ที่ได้รับผลกระทบโดยใช้พอร์ต 3389 ได้หรือไม่
ทำดังต่อไปนี้:
- ไปที่คอมพิวเตอร์เครื่องอื่นที่ไม่ได้รับผลกระทบและดาวน์โหลด psping
- เปิดหน้าต่างพรอมต์คำสั่งในฐานะผู้ดูแลระบบ เปลี่ยนเป็นไดเรกทอรีที่คุณติดตั้ง psping แล้วป้อนคำสั่งต่อไปนี้:
psping -accepteula <computer IP>:3389
- ตรวจสอบเอาต์พุตของ psping คำสั่งสำหรับผลลัพธ์ดังต่อไปนี้:
กำลังเชื่อมต่อกับ <คอมพิวเตอร์ IP> :สามารถเข้าถึงคอมพิวเตอร์ระยะไกลได้
(ขาดทุน 0%) :พยายามเชื่อมต่อสำเร็จทั้งหมด
คอมพิวเตอร์ระยะไกลปฏิเสธการเชื่อมต่อเครือข่าย :ไม่สามารถเข้าถึงคอมพิวเตอร์ระยะไกลได้
(ขาดทุน 100%) :ความพยายามทั้งหมดในการเชื่อมต่อล้มเหลว
- เรียกใช้ psping บนคอมพิวเตอร์หลายเครื่องเพื่อทดสอบความสามารถในการเชื่อมต่อกับคอมพิวเตอร์ที่ได้รับผลกระทบ
- สังเกตว่าคอมพิวเตอร์ที่ได้รับผลกระทบบล็อกการเชื่อมต่อจากคอมพิวเตอร์เครื่องอื่น คอมพิวเตอร์บางเครื่อง หรือคอมพิวเตอร์เครื่องเดียว
คุณสามารถดำเนินการขั้นตอนเพิ่มเติมได้
- ติดต่อผู้ดูแลระบบเครือข่ายของคุณเพื่อตรวจสอบว่าเครือข่ายอนุญาตการรับส่งข้อมูล RDP ไปยังคอมพิวเตอร์ที่ได้รับผลกระทบ
- ตรวจสอบการกำหนดค่าของไฟร์วอลล์ใดๆ ระหว่างคอมพิวเตอร์ต้นทางและคอมพิวเตอร์ที่ได้รับผลกระทบ (รวมถึง Windows Firewall บนคอมพิวเตอร์ที่ได้รับผลกระทบ) เพื่อตรวจสอบว่าไฟร์วอลล์กำลังบล็อกพอร์ต RDP หรือไม่
หวังว่าโพสต์นี้จะช่วยคุณแก้ไขปัญหาการเชื่อมต่อ RDP ที่คุณอาจประสบได้สำเร็จ!