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

หน้าจอดำขณะใช้การเชื่อมต่อ Windows Remote Desktop (RDP)

ในบทความนี้ เราจะแสดงว่าต้องทำอย่างไรหากคุณเห็นหน้าจอดำแทนเดสก์ท็อปเมื่อเชื่อมต่อกับโฮสต์ Windows ระยะไกลผ่าน RDP ปัญหานี้มักเกิดขึ้นในบิลด์ล่าสุดของ Windows 10 และ Windows Server 2019 และฉันตัดสินใจให้ข้อมูลเกี่ยวกับโซลูชันทั่วไปจาก ज्ञानฐานภายใน HelpDesk ของเรา

ดังนั้น คุณกำลังพยายามเชื่อมต่อกับคอมพิวเตอร์ระยะไกลโดยใช้ไคลเอ็นต์ RDP มาตรฐานของ Windows (mstsc.exe) และหลังจากใส่ข้อมูลประจำตัว คุณเห็นหน้าจอดำแทนเดสก์ท็อป

มีหลายเหตุผลที่ทำให้หน้าจอดำปรากฏในเซสชัน RDP การวินิจฉัยหรือจัดหมวดหมู่พวกมันค่อนข้างยาก

  1. กด CTRL+ALT+END ในเซสชัน RDP ของคุณ (สิ่งนี้ยังช่วยให้คุณเปลี่ยนรหัสผ่านในเซสชัน RDP ได้) จากนั้นคลิก Cancel บางครั้งสิ่งนี้ช่วยให้คุณกลับสู่เดสก์ท็อปในเซสชัน RDP หากไม่ช่วย ให้เปิด Task Manager จากหน้าจอนี้ และรันกระบวนการ File Explorer (File → Run new task → explorer.exe → OK)
  2. ตรวจสอบให้แน่ใจว่าการแคชถูกปิดใช้งานในการตั้งค่าไคลเอ็นต์ RDP (ปิดใช้งานตัวเลือก Persistent bitmap caching บนแท็บ Experience) และใช้ความละเอียดหน้าจอที่โฮสต์ระยะไกลรองรับ (ตั้งค่าความละเอียดต่ำกว่าในแท็บ Display หรือลองใช้โหมด Full Screen)
  3. ตรวจสอบให้แน่ใจว่าทั้งคอมพิวเตอร์ของคุณและระยะไกลใช้เวอร์ชันไดรเวอร์วิดีโอล่าสุด ลองใช้การอัปเดตไดรเวอร์อัตโนมัติ (หากคุณไม่ได้ปิดใช้งาน หรือดาวน์โหลดและติดตั้งไดรเวอร์ด้วยตนเอง) ในบางกรณี คุณต้องตั้งค่าให้ใช้ไดรเวอร์วิดีโอ XDDM แทน WDDM เพื่อทำเช่นนี้ ให้เปิด Local Group Policy Editor (gpedit.msc) และตั้งค่า Use WDDM graphics display driver for Remote Desktop Connections = Disabled ใน Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Remote Session Environment (หรือในรีจิสทรีเดียวกัน: reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services” /v “fEnableWddmDriver” /t REG_DWORD /d 0 /f) อัปเดตการตั้งค่า Group Policy บนโฮสต์ RDP/RDS ของคุณ
  4. ใน Windows Server 2016 ที่กำหนดค่า RDP session timeouts ฉันพบคำร้องเรียนของผู้ใช้ว่าหลังจากพยายามเชื่อมต่อกับเซสชันที่ตัดการเชื่อมต่อ มันไม่ได้เปิดใช้งานอย่างถูกต้องและพวกเขาเห็นหน้าจอดำ มีเพียงผู้ใช้เท่านั้นที่สามารถสิ้นสุดเซสชัน RDP (CTRL+ALT+End → Sign out) หรือผู้ดูแลระบบสามารถบังคับปิดได้ (เหมือนที่อธิบายในบทความ Remote Desktop Services Is Currently Busy) หรือกำหนดค่าการตั้งค่าที่รุนแรงขึ้นเพื่อยุติเซสชันผู้ใช้ที่ตัดการเชื่อมต่อ
  5. ปิดใช้งานการใช้พอร์ต UDP 3389 สำหรับการจราจร RDP (มันถูกใช้ร่วมกับพอร์ต TCP 3389 เริ่มต้นบน Windows Server 2012 R2/Windows 8.1 และใหม่กว่า) สามารถทำได้โดยการเปิดใช้งานตัวเลือก Turn off UDP on client ใน GPO ท้องถิ่นบนอุปกรณ์ไคลเอ็นต์ (Computer Configuration → Policies → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Connection Client) หรือผ่านรีจิสทรี: reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client” /v “fClientDisableUDP” /t REG_DWORD /d 1 /f เพื่อปิดใช้งานโปรโตคอล UDP สำหรับการจราจร RDP บนฝั่งเซิร์ฟเวอร์ ให้เปิดใช้งานพารามิเตอร์ GPO …Remote Desktop Session Host → Connections → Select RDP transport protocols = Use only TCP
  6. บางครั้งบนโฮสต์ RDS จำเป็นต้องรีสตาร์ทบริการ Audiosrv (Windows Audio) หลังจากนั้นโปรไฟล์ผู้ใช้จะโหลดและเดสก์ท็อปจะปรากฏ

Microsoft เสนอคำแนะนำอื่นๆ ที่ไม่ช่วยเหลือเสมอไป แต่สามารถแก้ไขแหล่งที่มาของปัญหาได้:

  1. ตรวจสอบให้แน่ใจว่าโฮสต์ RDP, ไคลเอ็นต์ และอุปกรณ์เครือข่ายทั้งหมดระหว่างพวกเขากำหนดค่า MTU ขนาดเดียวกัน
  2. ปิดใช้งานการบีบอัดการจราจร RDP ใน Local GPO editor: Configure compression for RemoteFX data = Do not use an RDP compression algorithm (Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host)
  3. หากปัญหาหน้าจอดำในเซสชัน 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