ในบทความนี้ เราจะแสดงสิ่งที่ควรทำหากคุณเห็นหน้าจอสีดำแทนที่จะเป็นเดสก์ท็อปเมื่อคุณเชื่อมต่อกับโฮสต์ Windows ระยะไกลผ่าน RDP ปัญหานี้มักเกิดขึ้นใน Windows 10 และ Windows Server 2019 รุ่นใหม่ล่าสุด และฉันตัดสินใจที่จะให้ข้อมูลบางอย่างเกี่ยวกับวิธีแก้ปัญหาทั่วไปจากฐานความรู้ HelpDesk ภายในของเรา
คุณกำลังพยายามเชื่อมต่อกับคอมพิวเตอร์ระยะไกลโดยใช้ไคลเอนต์ Windows RDP มาตรฐาน (mstsc.exe
) และหลังจากป้อนข้อมูลประจำตัวของคุณ คุณจะเห็นหน้าจอสีดำแทนที่จะเป็นเดสก์ท็อป
มีสาเหตุหลายประการที่ทำให้หน้าจอสีดำปรากฏขึ้นในเซสชัน RDP การวินิจฉัยหรือจัดหมวดหมู่ค่อนข้างยาก
- กด
CTRL+ALT+END
ในเซสชัน RDP ของคุณ (ซึ่งอนุญาตให้คุณเปลี่ยนรหัสผ่านในเซสชัน RDP ของคุณด้วย) จากนั้นคลิก ยกเลิก . ซึ่งบางครั้งทำให้คุณสามารถกลับไปที่เดสก์ท็อปในเซสชัน RDP ได้ หากไม่ได้ผล ให้เปิดตัวจัดการงานจากหน้าจอนี้และเรียกใช้กระบวนการ File Explorer (ไฟล์ -> เรียกใช้งานใหม่ ->explorer.exe
-> ตกลง); - ตรวจสอบให้แน่ใจว่าการแคชถูกปิดใช้งานในการตั้งค่าไคลเอ็นต์ RDP (ปิดใช้งาน การแคชบิตแมปแบบถาวร ตัวเลือกใน ประสบการณ์ และใช้ความละเอียดหน้าจอที่รองรับโดยโฮสต์ระยะไกล (ตั้งค่าความละเอียดหน้าจอที่ต่ำกว่าในแท็บการแสดงผลหรือลองใช้ เต็มหน้าจอ โหมด);
- ตรวจสอบให้แน่ใจว่าทั้งคอมพิวเตอร์และรีโมตของคุณใช้ไดรเวอร์วิดีโอเวอร์ชันล่าสุด ลองใช้การอัปเดตไดรเวอร์อัตโนมัติ (หากคุณไม่ได้ปิดใช้งาน หรือดาวน์โหลดและติดตั้งไดรเวอร์ด้วยตนเอง)
ในบางกรณี คุณต้องตั้งค่าโดยใช้ไดรเวอร์วิดีโอ XDDM แทน WDDM ในการดำเนินการ ให้เปิดตัวแก้ไขนโยบายกลุ่มภายใน (gpedit.msc) และตั้งค่า ใช้ไดรเวอร์การแสดงผลกราฟิก WDDM สำหรับการเชื่อมต่อเดสก์ท็อประยะไกล =ปิดการใช้งาน ในการกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ส่วนประกอบของ Windows -> บริการเดสก์ท็อประยะไกล -> โฮสต์เซสชันเดสก์ท็อประยะไกล -> สภาพแวดล้อมเซสชันระยะไกล (หรือเหมือนกันในรีจิสทรี:reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services” /v “fEnableWddmDriver” /t REG_DWORD /d 0 /f
). อัปเดตการตั้งค่านโยบายกลุ่มบนโฮสต์ RDP/RDS ของคุณ - ใน Windows Server 2016 ที่มีการกำหนดค่าหมดเวลาของเซสชัน RDP ฉันพบการร้องเรียนของผู้ใช้ว่าหลังจากพยายามเชื่อมต่อกับเซสชันที่ไม่ได้เชื่อมต่อ เปิดใช้งานไม่ถูกต้องและพวกเขาเห็นหน้าจอสีดำ มีเพียงผู้ใช้เท่านั้นที่สามารถสิ้นสุดเซสชัน RDP ของพวกเขา (
CTRL+ALT+End
-> ออกจากระบบ) หรือผู้ดูแลระบบสามารถบังคับปิดได้ (เช่นที่อธิบายไว้ในบทความบริการเดสก์ท็อประยะไกลไม่ว่างในขณะนี้) หรือกำหนดการตั้งค่าที่เข้มงวดมากขึ้นเพื่อยุติเซสชันผู้ใช้ที่ไม่ได้เชื่อมต่อ - ปิดใช้งานการใช้พอร์ต UDP 3389 สำหรับการรับส่งข้อมูล RDP (ใช้ร่วมกับค่าเริ่มต้น RDP TCP Port 3389 บน Windows Server 2012 R2/Windows 8.1 และใหม่กว่า) ซึ่งสามารถทำได้โดยเปิดใช้งาน ปิด UDP บนไคลเอนต์ ตัวเลือกใน GPO ท้องถิ่นบนอุปกรณ์ไคลเอ็นต์ (การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> เทมเพลตการดูแล -> คอมโพเนนต์ของ Windows -> บริการเดสก์ท็อประยะไกล -> ไคลเอ็นต์การเชื่อมต่อเดสก์ท็อประยะไกล) หรือผ่านรีจิสทรี:
reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client” /v “fClientDisableUDP” /t REG_DWORD /d 1 /f
. ในการปิดใช้งานโปรโตคอล UDP สำหรับการรับส่งข้อมูล RDP บนฝั่งเซิร์ฟเวอร์ ให้เปิดใช้งานพารามิเตอร์ GPO …โฮสต์เซสชันเดสก์ท็อประยะไกล -> การเชื่อมต่อ -> เลือกโปรโตคอลการขนส่ง RDP =Use only TCP
; - บางครั้งบนโฮสต์ RDS จำเป็นต้องรีสตาร์ท
Audiosrv
บริการ (Windows Audio) หลังจากที่โหลดโปรไฟล์ผู้ใช้และเดสก์ท็อปจะปรากฏขึ้น
Microsoft เสนอคำแนะนำอื่นๆ ที่ไม่ได้ช่วยเสมอไป แต่สามารถแก้ไขที่มาของปัญหาได้:
- ตรวจสอบให้แน่ใจว่าโฮสต์ RDP ไคลเอนต์ และอุปกรณ์เครือข่ายทั้งหมดระหว่างพวกเขาได้รับการกำหนดค่าสำหรับขนาด MTU เดียวกัน
- ปิดใช้งานการบีบอัดการรับส่งข้อมูล RDP ในตัวแก้ไข GPO ในเครื่อง:กำหนดค่าการบีบอัดสำหรับข้อมูล RemoteFX =
Do not use an RDP compression algorithm
(การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ส่วนประกอบ Windows -> บริการเดสก์ท็อประยะไกล -> โฮสต์เซสชันเดสก์ท็อประยะไกล); - หากปัญหาของหน้าจอสีดำในเซสชัน RDP เกิดขึ้นใน Windows Server 2019 หรือ Windows 10 1809+ ให้เปิด Event Viewer แล้วตรวจสอบ Application and Service Logs –> Microsoft –> Windows –> RemoteDesktopService-RdpCoreTS ดูว่ามีข้อผิดพลาดเช่น
‘Failed GetConnectionProperty’ in CUMRDPConnection::QueryProperty at 2884 err=[0x80004001]‘
‘Connection doesn’t support logon error redirector’ in CUMRDPConnection::GetLogonErrorRedirector at 4199 err=[0x80004001]
. หากคุณเห็น ให้ปิดการใช้งาน URCP (Universal Rate Control Protocol) ใช้ในการถ่ายโอนข้อมูลบางส่วนระหว่างไคลเอนต์ RDP ของคุณและเซิร์ฟเวอร์ผ่าน UDP (MS-RDPEUDP2):reg add “HKLM\SOFTWARE\Microsoft\Terminal Server Client” /v “UseURCP” /t REG_DWORD /d 0 /f
หรือคุณจะตั้งค่าพารามิเตอร์รีจิสทรีนี้โดยใช้ PowerShell:New-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Terminal Server Client' -Name UseURCP -PropertyType DWord -Value 0