Буфер обмена в RDP сессии удобно использовать для передачи текста и файлом между локальным компьютером и удаленным хостом (это может быть как рабочая станция Windows, так и RDS ферма на Windows Server). Иногда случается, что буфер обмена в терминальной сессии Windows (или приложении RemoteApp) перестает работать, и вы не можете передать (скопировать/вставить) ваши данные между вашим компьютером и RDP сервером.
Возможны несколько сценариев: проверьте, разрешено ли перенаправление буфера обмена на клиенте RDP, проверьте настройки копирования файлов/данных через буфер обмена RDP на сервере, перезапустите сбойный процесса rdpclip.exe в текущей терминальной сессии пользователя.
Перезапуск процесса буфера обмена в RDP сессии (rdpclip.exe)
Если буфер обмена в конкретной RDP сессии неожиданно перестал работать, а пункт Paste в контекстном меню удаленного компьютера стал неактивным, проще всего корректно завершить текущую RDP сессию (
logoff
) и подключиться заново. Это наверняка исправит проблему с буфером обмена. Но этом неудобно, потому что вам придется заново запускать все приложения в терминальном сеансе. Вы можете попробовать восстановить работу буфера обмена в RDP сессии без выполнения logoff.
ЗЗа работу буфера обмена между вашим компьютером и RDP хостом отвечает приложение rdpclip.exe. Для каждого удаленного пользователя при подключении к Remote Desktop стартует собственный процесс
rdpclip.exe
. С помощью Task Manager вы можете завершить процесс rdpclip.exe (RDP Clipboard Monitor/ Монитор буфера обмена RDP -> Emd task) и запустить его вручную (Task Manager -> File -> Start new task -> rdpclip.exe —> Enter).
Это обычно помогает быстро восстановить работу удаленного буфера обмена. Проверьте, работает ли теперь copy/paste (Ctrl+C / Ctrl+V) в RDP окне.
(Get-WmiObject -Query "select * from Win32_Process where name='RDPClip.exe'"|?{$_.GetOwner().User -eq $ENV:USERNAME}).Terminate()
rdpclip.exe
Для удобства можно подписать этот 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, нужно нажать кнопку More и включить опцию Drives. Это разрешит использовать локальные диски в RDP сессии для копирования файлов.
Если вы используете готовый *.RDP файл с настройками для подключения к удаленному компьютеру (например для подключения к RemoteApp), проверьте что в нем включены следующие опции:
redirectclipboard:i:1 redirectdrives:i:1 drivestoredirect:s:*
- redirectclipboard — разрешает использовать локальный буфер обмена в удаленной сессии;
- Drivestoredirect и redirectdrives – включают перенаправление в RDP сеанс для всех локальных дисков (нужна, если вы копируете файлы через RDP).
Как запретить/разрешить копирование через буфер обмена RDP в Windows?
С помощью параметров групповых политик или реестра вы можете разрешить или запретить использование RDP буфера обмена на хосте Windows для операций копировать/вставить.
- Запустите локальный редактор групповых политик–
gpedit.msc
; - Перейдите в секцию GPO Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Device and Resource Redirection;
- Чтобы запретить копировать данные с/на удаленный сервер через буфер обмена RDP сессии установите Enabled для следующих политик:
Do not allow Clipboard redirection - Clipboard redirection используется для копирования текста и файлов через буфер обмена в RDP). Do not allow drive redirection - Drive mapping/redirection –позволяет пользователю получать доступ к своим локальным дискам в RDP сессии. Используется в том числе при копировании файлов.
При включении этих политик в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services будут созданы следующие DWORD параметры:
fDisableCdm = 1
(запретить подключение локальных дисков на RDP хосте)
fDisableClip = 1
(запретить передачу данных через буфер обмена между RDP сервером и клиентом)Аналогичные политики есть в пользовательском разделе GPO. Это значит, что вы можете отключить буфер обмен и подключаемые диски только для определенных пользователей RDP хоста. На отдельно-стоящем компьютере для отключения буфера обмена RDP для не-администраторов, можно использовать MLGPO. - Если вы хотите принудительно разрешить использование RDP буфера обмена, измените значения параметров на Disabled (по умолчанию использование RDPClip для обмена данными между локальным компьютером и удаленным RDP хостов разрешено);
- Обновите настройки политик командой
gpupdate /force
. Для применения новых настроек к пользователям, они должны завершить свои RDP сессии (через logoff, а не disconnect).
Вы можете полностью отключить RDP буфер и перенаправление локальных дисков для всех пользователей Windows хоста с включенным RDP доступом через реестр.
Для этого создайте REG_DWORD параметры в ветке реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server:
- DisableClipboardRedirection = 1
- DisableDriveRedirection = 1
И два параметра рассмотренных выше в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services:
- fDisableCdm =1
- fDisableClip = 1
Чтобы быстро запретить копирование данных между компьютером и удаленным RDP хостом, выполните команды:
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
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDisableCdm /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fDisableClip /t REG_DWORD /d 1 /f
Если вы хотите, наоборот разрешить использовать буфер обмена RDP, эти параметры реестра должны отсутствовать (по умолчанию) или их значения должны быть равны 0.
Можно проверить значение параметром реестра с помощью PowerShell:
Get-ItemProperty -Path 'HKLM:SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' | Select fDisableClip,fDisableCdm
Если у вас используются RDS сервера на Windows Server 2022,2019,2016, можно включить/отключить буфер обмена и локальные диски в настройках RDS коллекции. Откройте Server Manager -> Remote Desktop Services -> Collections -> Tasks -> Edit Properties -> Client Settings. Снимите галки у опций “Clipboard” и “Drive” в секции Enable redirecting for the following.
Параметр Drives позволяет использовать копирование файлов через буфер обмена (используются локальные диски в RDS сеансе).
Можно изменить настройки RDS коллекции с помощью PowerShell:
Set-RDSessionCollectionConfiguration -CollectionName myCol1 -ClientDeviceRedirectionOptions “Clipboard,Drive”
xcopy \\tsclient\c\distr\my.iso c:\serverfolder
Если у вас используется хост RDGateway для подключения к RDS, нужно учитывать что вы можете запретить или разрешить использовать буфер обмена в настройках вашей политики CAP (Connection Authorization Policy). По умолчанию в разделе Device Redirection включена опция Enable device redirection for all client devices. Здесь вы можете запретить перенаправление локального буфера обмена и дисков.
Если вы хотите запретить копировать из терминальной RDP сессии только для пользователей, но не для администраторов, можно изменить NTFS разрешения на файл
c:\windows\system32\rdpclip.exe
. Необходимо в свойствах файл убрать разрешение Read/Execute для встроенной группы Users (придется сначала изменить владельца файла с TrustedInstaller).