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

ไม่สามารถ Copy/Paste ผ่าน Clipboard ของ Remote Desktop (RDP) ได้

หากคุณใช้การเชื่อมต่อระยะไกลไปยังสถานีทำงาน เซิร์ฟเวอร์ Windows หรือฟาร์ม RDS โดยใช้โปรโตคอล RDP อย่างต่อเนื่อง น่าจะเคยเผชิญปัญหาที่ Clipboard ไม่ทำงานในเซสชัน Remote Desktop ดังนั้นจึงไม่สามารถถ่ายโอน (copy/paste) ข้อความหรือไฟล์ระหว่างคอมพิวเตอร์ของคุณและโฮสต์ระยะไกลได้ ปัญหานี้เกิดขึ้นทั้งใน Windows Server และ Windows Desktop

สถานการณ์ที่เป็นไปได้ 2 กรณี

  1. การคัดลอกไฟล์/ข้อมูลผ่าน RDP ไม่อนุญาตบนเซิร์ฟเวอร์ระยะไกล
  2. กระบวนการ rdpclip.exe ค้าง (crash) ในเซสชันผู้ใช้ปัจจุบัน

RDP Clipboard (Rdpclip.exe) หยุดทำงานในเซสชัน Remote Desktop

หาก Clipboard ในเซสชัน RDP หยุดทำงานอย่างกะทันหัน และตัวเลือก Paste ในเมนูบริบทกลายเป็น inactive วิธีง่ายที่สุดคือจบเซสชัน RDP ปัจจุบันอย่างถูกต้อง (logoff) และเชื่อมต่อใหม่ จะแก้ไขปัญหา Remote Desktop clipboard แน่นอน อย่างไรก็ตาม ไม่สะดวกเสมอไป เพราะต้องเปิดแอปพลิเคชันทั้งหมดในเซสชัน RDP ใหม่ สบายดีที่มีวิธีกู้คืนการทำงานของ Clipboard ในเซสชัน RDP โดยไม่ต้อง logoff

Rdpclip.exe รับผิดชอบต่อการทำงานของ Clipboard ระหว่างคอมพิวเตอร์ท้องถิ่นและโฮสต์ Remote Desktop กระบวนการ rdpclip.exe แยกต่างหากจะเริ่มต้นสำหรับแต่ละเซสชันผู้ใช้ระยะไกลเมื่อพวกเขาเชื่อมต่อกับ Remote Desktop โดยใช้ Task Manager สามารถ kill กระบวนการ rdpclip.exe (RDP Clipboard Monitor) และรันด้วยตนเอง (Task Manager → File → Start new task → rdpclip → Enter)

ปกติแล้วจะช่วยกู้คืนการทำงานของ Remote clipboard ได้อย่างรวดเร็ว ตรวจสอบว่า copy/paste (Ctrl+C / Ctrl+V) ทำงานในเซสชัน RDP หรือไม่

ผู้ใช้สามารถรีสตาร์ทกระบวนการ rdpclip.exe หากค้างได้โดยใช้สคริปต์ PowerShell เรียบง่าย เพียงวางไฟล์ PS1 ไว้ในโฟลเดอร์ Public profile Desktop หรือคัดลอกไปยัง Desktop ของผู้ใช้โดยใช้ GPO

(Get-WmiObject -Query "select * from Win32_Process where name='RDPClip.exe'"|?{$_.GetOwner().User -eq $ENV:USERNAME}).Terminate()
rdpclip.exe

เพื่อให้สะดวกกว่าในการใช้งาน สามารถลงนามสคริปต์ PowerShell หรือกำหนดค่า PowerShell Execution Policy

จำไว้. เพื่อคัดลอกข้อมูลผ่าน RDP Clipboard ต้องเงื่อนไขดังต่อไปนี้:
  1. Remote clipboard ต้องเปิดใช้งานในการตั้งค่าของ RDP client ที่คุณใช้เชื่อมต่อกับคอมพิวเตอร์ระยะไกล ตรวจสอบ Clipboard ในส่วน Choose the devices and resources that you want to use in your remote session ในแท็บ Local Resources ของไคลเอ็นต์ในตัว mstsc.exe
  2. การคัดลอกและวางข้อมูลโดยใช้ Clipboard ต้องได้รับอนุญาตบนโฮสต์ RDP/RDS เช่นกัน (ดูวิธีการด้านล่าง)

วิธีอนุญาต/ป้องกัน Copy และ Paste ผ่าน RDP Clipboard บน Windows

สามารถเปิดใช้งานหรือปิดใช้งานการใช้ RDP Clipboard บนโฮสต์ Windows สำหรับการคัดลอกและวางได้โดยใช้ Group Policy หรือการตั้งค่า Registry

  1. รัน Local Group Policy Editor: gpedit.msc
  2. ไปที่ Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Device and Resource Redirection
  3. เพื่อป้องกันการคัดลอกข้อมูลไป/มาจากเซิร์ฟเวอร์ระยะไกลโดยใช้ Clipboard ของเซสชัน RDP ให้ตั้งค่า Enabled สำหรับนโยบายต่อไปนี้:
    • Do not allow Clipboard redirection (Clipboard redirection ใช้สำหรับคัดลอกข้อความหรือไฟล์โดยใช้ Clipboard ใน RDP)
    • Do not allow drive redirection (Drive mapping/redirection อนุญาตให้ผู้ใช้เข้าถึงไดรฟ์ท้องถิ่นของพวกเขาในเซสชัน RDP ใช้เมื่อคัดลอกไฟล์ด้วย)

    มีการตั้งค่านโยบายเดียวกันในส่วน User GPO หมายความว่าสามารถปิดใช้งาน Clipboard และไดรฟ์ที่เชื่อมต่อสำหรับผู้ใช้ RDP เฉพาะได้ บนคอมพิวเตอร์ Standalone (workgroup) อาจใช้ MLGPO เพื่อปิดใช้งาน RDP Clipboard สำหรับผู้ใช้ที่ไม่ใช่แอดมิน

  4. หากต้องการบังคับให้ใช้ RDP Clipboard ให้เปลี่ยนค่าการตั้งค่าเป็น Disabled (โดยค่าเริ่มต้น การใช้ RDPClip เพื่อคัดลอกข้อมูลระหว่างคอมพิวเตอร์ท้องถิ่นและโฮสต์ RDP ระยะไกลได้รับอนุญาต)
  5. อัปเดตการตั้งค่า Group Policy โดยใช้ gpupdate /force เพื่อให้การตั้งค่าใหม่มีผลกับผู้ใช้ พวกเขาต้องจบเซสชัน RDP (ใช้ logoff แทน disconnect) หรือรอการตัดการเชื่อมต่อเซสชันผู้ใช้อัตโนมัติตาม RDS timeouts

ปิดใช้งาน RDP Clipboard ผ่าน Registry

พารามิเตอร์ REG_DWORD ต่อไปนี้ใน HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server ตรงกับการตั้งค่านโยบายที่อธิบายไว้ข้างต้น:

  • DisableClipboardRedirection = 1
  • DisableDriveRedirection = 1

สามารถปิดใช้งาน RDP Clipboard ระหว่างคอมพิวเตอร์และโฮสต์ระยะไกลได้ดังนี้:

reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server" /v "DisableClipboardRedirection" /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server" /v "DisableDriveRedirection" /t REG_DWORD /d 1 /f

การตั้งค่าบน RDS Hosts

หากใช้ RDS hosts ที่รันบน Windows Server สามารถปิดใช้งาน Clipboard และการเปลี่ยนเส้นทางไดรฟ์ท้องถิ่นในการตั้งค่า Collection: Remote Desktop Services → Collections → Tasks → Edit Properties → Client Settings ยกเลิกติ๊กตัวเลือก Clipboard และ Drives ในส่วน Enable redirecting for the following

หากต้องการปฏิเสธการคัดลอกไป/มาจากเซสชัน RDP สำหรับผู้ใช้อย่างเดียว แต่ไม่ใช่แอดมินิสทเรเตอร์ สามารถเปลี่ยนสิทธิ์ NTFS บนไฟล์ executable C:\windows\system32\rdpclip.exe โดยยกเลิกสิทธิ์ Read/Execute สำหรับกลุ่ม Users ในคุณสมบัติความปลอดภัยของไฟล์ และลบกลุ่มออกจากรายการ (จะต้องเปลี่ยนเจ้าของไฟล์จาก TrustedInstaller เป็นอีกตัวก่อน)