Не работает буфер обмена в RDP сессии Windows

Буфер обмена в сессии удаленного рабочего стола (RDP) используется для передачи текста и копирования файлов между локальным компьютером пользователя и удаленным хостом (это может быть как рабочая станция Windows, так и RDS ферма на Windows Server). Иногда случается, что буфер обмена в терминальной сессии Windows (или приложении RemoteApp) перестает работать, и вы не можете передать (скопировать/вставить) ваши данные между вашим компьютером и RDP сервером.

Возможны несколько сценариев: проверьте, включена ли опция перенаправления буфера обмена на клиенте RDP, разрешено ли в настройках политик безопасности RDP сервера копирования файлов и/или данных через буфер обмена RDP, а иногда достаточно просто перезапустить сбойный процесс rdpclip.exe в текущей терминальной сессии пользователя.

Перезапуск процесса буфера обмена в RDP сессии (rdpclip.exe)

С настройками по умолчанию в Windows разрешено использовать буфер обмена для копирования текста и файлов между локальным хостом и сессией RDP.

Если буфер обмена в конкретной RDP сессии пользователя неожиданно перестал работать, а пункт Paste в контекстном меню удаленного компьютера стал неактивным, проще всего корректно завершить текущую RDP сессию ( logoff ) и подключиться заново. Это наверняка исправит проблему с буфером обмена. Но этом неудобно, потому что вам придется заново запускать все приложения в терминальном сеансе. Вы можете попробовать восстановить работу буфера обмена в RDP сессии без выполнения logoff.

За работу буфера обмена между вашим локальным компьютером и удаленным RDP хостом отвечает приложение rdpclip.exe. Для каждого удаленного пользователя при подключении к Remote Desktop стартует собственный процесс rdpclip.exe . С помощью Task Manager вы можете завершить процесс rdpclip.exe (RDP Clipboard Monitor/ Монитор буфера обмена RDP -> End task) и запустить его вручную (Task Manager -> File -> Start new task -> rdpclip.exe —> Enter).

завершить процесс rdpclip.exe (RDP Clipboard Monitor)
Это обычно помогает быстро восстановить работу удаленного буфера обмена. Проверьте, работает ли теперь copy/paste ( Ctrl+C / Ctrl+V ) в RDP окне.

запустить rdpclip вручную

Пользователи могут самостоятельно перезапускать зависший процесс rdpclip.exe с помощью простого PowerShell скрипта. Следующий CMD скрипт и аналогичная PowerShell команда перезапустит процесс rdpclip.exe в сессии текущего пользователя, не затрагивая запущенные процессы буфера обмена в сеансах других пользователей RDP сервера:

BAT скрипт:

taskkill /F /FI "USERNAME eq %username%" /IM rdpclip.exe && start rdpclip.exe

PowerShell скрипт:

Get-Process rdpclip -EA 0 | ? SessionId -eq (Get-Process -Id $PID).SessionId | Stop-Process -Force; Start-Process rdpclip

Для удобства вы можете сохранить этот скрипт в BAT или PS1 файл на рабочем стол общего профиля Public или скопировать файл пользователям на рабочие столы через GPO. Если вы используете PS1 файл, вы можете подписать этот PowerShell скрипт или настроить политику PowerShell Execution Policy.

Разрешить буфера обмена на RDP клиенте Windows

Проверьте, что настройки вашего RDP клиента разрешают использовать буфер обмена в окне терминальной сессии.

Если вы используете встроенный RDP клиент Windows (Remote Desktop Connection, mstsc.exe ) для подключения к удаленному терминальному серверу, проверьте что в его настройках разрешено копирование через RDP буфер обмена.

Перейдите на вкладку Local Resources, проверьте что в секции “Choose the devices and resources that you want to use in your remote session” включена опция Clipboard (Буфер обмена).

разрешить использовать буфер обмена в rdp

Если вы хотите разрешить копировать файлы через буфер обмена RDP, нужно нажать кнопку More и включить опцию Drives. Это разрешит использовать локальные диски в RDP сессии для копирования файлов.

включить перенаправление локальных дисков в rdp сессию

Если вы используете альтернативный RDP клиент, например Remote Desktop Connection Manager или mRemoteNG, имейте в виду что опция удаленного буфера обмена может называться по-другому.

Если вы используете преднастроенный *.RDP файл для подключения к удаленному компьютеру (например, для подключения к опубликованному приложению RemoteApp), проверьте что в нем включены следующие опции:

redirectclipboard:i:1
redirectdrives:i:1
drivestoredirect:s:*
  • redirectclipboard — разрешает использовать локальный буфер обмена в удаленной сессии
  • Drivestoredirect и redirectdrives – включают перенаправление в RDP сеанс всех локальных дисков (опция нужна, если вы копируете файлы через RDP)

опция redirectclipboard в rdp файле

Чтобы на RDP клиенте запретить использовать буфер обмена и перенаправление локальных дисков при подключении к удаленным рабочем столам для всех пользователей, можно создать следующие параметры в реестре со значением 1:

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

Если удалить эти параметры реестра, или изменить их на 0, использование буфера обмена для исходящих RDP сессии будет разрешено.

Как запретить/разрешить копирование через буфер обмена RDP в Windows?

На RDS/RDP сервере с помощью параметров групповых политик или реестра администратор может разрешить или запретить использование RDP буфера обмена для операций Копировать/Вставить.

  1. Запустите локальный редактор групповых политикgpedit.msc ;
  2. Перейдите в секцию GPO Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection;
  3. Чтобы запретить копировать данные с/на удаленный сервер через буфер обмена RDP сессии установите Enabled для следующих политик:
    Do not allow Clipboard redirection - Clipboard redirection используется для копирования текста и файлов через буфер обмена в RDP.
    Do not allow drive redirection - Drive mapping/redirection – Drive mapping/redirection –позволяет пользователю получать доступ к своим локальным дискам в RDP сессии. Используется в том числе для копировании файлов между локальным компьютеров и удаленным рабочим столом.

    Do not allow Clipboard redirection групповая политика

    Аналогичные политики есть в пользовательском разделе GPO. Это значит, что вы можете отключить буфер обмен и подключаемые диски только для определенных пользователей RDP хоста. На отдельностоящем компьютере для отключения буфера обмена RDP для не-администраторов, можно использовать MLGPO.
  4. Если вы хотите принудительно разрешить использование RDP буфера обмена, измените значения параметров на Disabled (по умолчанию использование RDPClip для обмена данными между локальным компьютером и удаленным RDP хостов разрешено).
  5. Обновите настройки политик командой gpupdate /force . Для применения новых настроек к пользователям, они должны завершить свои RDP сессии (через logoff, а не disconnect).

При включении этих политик в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services будут созданы следующие DWORD параметры:

  • fDisableCdm = 1 (запретить проброс локальных дисков на RDP хосте)
  • fDisableClip = 1 (запретить передачу данных через буфер обмена между RDP сервером и клиентом)

Также можно запретить использовать буфер обмена на стороне RDP сервера напрямую через реестр, создав следующие параметры:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fDisableClip /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fDisableCdm /t REG_DWORD /d 1 /f

fDisableClip параметр реестра для отключения/включения буфера обмена в RDP сессии

Таким образом, чтобы на сервере проверить, разрешено ли использование буфера обмена для передачи, опросите состояние следующих четырех параметров реестре. Значение 1 для любого из них указывает, что буфер обмена в RDP заблокирован. Проверьте значения параметров реестра с помощью PowerShell:

Get-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" | Select fDisableClip,fDisableCdm
Get-ItemProperty -Path "HKLM:SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" | Select fDisableClip,fDisableCdm

Если вы хотите, наоборот разрешить использовать буфер обмена RDP, эти параметры реестра должны отсутствовать (по умолчанию) или их значения должны быть равны 0.

Проверить с помощью PowerShell что в реестре ращрешено использовать буфер обмена RDP

Начиная с Windows Server 2022 и в Windows 11 22H2 появились новые параметры GPO, которые позволяют более тонко сконфигурировать права на использование буфера обмена в RDP (эти параметры GPO также находятся в разделе Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection):

  • Restrict clipboard transfer from client to server – позволяет разрешить/запретить копирование через буфер обмена с клиента на сервера
  • Restrict clipboard transfer from server to client – права копирования через буфер обмена с сервера на клиент

Новые параметр GPO для настройки ограничения буфера обмена в RDP/RDS на Windows Server 2022 и Windows 11

Для использования этих опций GPO в Windows Server 2022, нужно скопировать с Windows 11 23H2 или выше в каталог PolicyDefinitions файл с шаблоном GPO terminalserver.admx

В каждой из этих опций доступно несколько параметров (в скобках указаны соответствующие значения параметров реестра), позволяющие указать какие типы объектов вы хотите разрешить копировать через буфер обмена с клиента на сервер RDP и обратно:

  • Disable clipboard transfers from client to server ( 0 )
  • Allow plain text ( 1 )
  • Allow plain text and images ( 2 )
  • Allow plain text, images and Rich Text Format ( 3 )
  • Allow plain text, images, Rich Text Format and HTML ( 4 )

Разрешить или запретить передачу разных типов данных через буфер обмена в RDP сессии

Проверить значения параметров, заданных этими политиками в реестре:

Get-ItemProperty -Path "HKLM:SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" | Select CSClipLevel, SCClipLevel

CSClipLevel и SCClipLevel параметры реестра

Если вы хотите запретить копировать из терминальной RDP сессии только для пользователей, но не для администраторов, можно изменить NTFS разрешения на файл c:\windows\system32\rdpclip.exe . Необходимо в свойствах файл убрать разрешение Read/Execute для встроенной группы Users (придется сначала изменить владельца файла с TrustedInstaller).

запрети на использование rdpclip.exe для не-администраторов

Разрешения на использование буфера обмена в Remote Desktop Services (RDS)

Если у вас используются сервера на Windows Server с ролью Remote Desktop Services (RDS), можно включить/отключить буфер обмена и локальные диски в настройках RDS коллекций.

Откройте Server Manager -> Remote Desktop Services -> Collections -> Tasks -> Edit Properties -> Client Settings. Снимите галки у опций “Clipboard” и “Drive” в секции Enable redirecting for the following.

настройки RDS коллекции - запретить буфер обмена и копирование файлов

Параметр Drives (проброс локальных дисков в RDS сеансе) требуется, если вы хотите разрешить копирование файлов через буфер обмена.

Можно изменить настройки RDS коллекции с помощью PowerShell:

Set-RDSessionCollectionConfiguration -CollectionName myCol1 -ClientDeviceRedirectionOptions “Clipboard,Drive”

Обратите внимание, что через буфер обмена RDP нельзя копировать файлы более 2 Гб. Если вам нужно скопировать большой файл между RDS хостом и локальным компьютером, воспользуйтесь командой xcopy:

xcopy \\tsclient\c\distr\my.iso c:\serverfolder

Если у вас используется хост RDGateway для подключения к RDS, нужно учитывать, что вы можете запретить или разрешить использовать буфер обмена в настройках вашей политики CAP (Connection Authorization Policy). По умолчанию в разделе Device Redirection включена опция Enable device redirection for all client devices. Здесь вы можете запретить перенаправление локального буфера обмена и дисков.

rd gateway разрешить буфер обмена в RDP

Итак, в статье мы рассмотрели основные опции, которые позволяют диагностировать и решить проблему неработающего буфера обмена в RDP сессии, начиная с зависания процесса rdpclip.exe и заканчивая настройками безопасности сервера, которые ограничивают использование буфера обмена для копирования текста и файлов.


Предыдущая статья Следующая статья


Комментариев: 33 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)