Если вы активно используете удаленные подключения к рабочим станциям, Windows серверам, RDS фермерам через протокол RDP, скорее всего вы не раз сталкивались, что в некоторых случаях не работает буфер обмена в терминальной сессии. В результате вы не можете передать (скопировать/вставить) текст или файлы между вашим компьютером и удаленным рабочим столом. Проблема встречается как в Windows Server, так и в десктопных версиях Windows.
Возможны два сценария – на удаленном сервере запрещено копировать файлы/данные через RDP, или в текущей сессии пользователя произошел сбой процесса rdpclip.exe.
Не работают функции копировать/вставить в буфере обмена RDP сессии (rdpclip.exe)
Если буфер обмена в конкретной RDP сессии перестал работать неожиданно, а пункт Paste в контекстном меню удаленного компьютера стал неактивным, проще всего корректно завершить текущую RDP сессию (logoff) и подключиться заново. Это наверняка исправит проблему с буфером обмена. Однако это не всегда удобно, потому что приходится заново запускать все приложения в RDP сессии. К счастью, есть способ восстановить работу буфера обмена в RDP сессии без выполнения logoff.
За работу буфера обмена между вашим компьютером и удаленной RDP отвечает приложение rdpclip.exe. Для каждого удаленного пользователя при подключении к Remote Desktop для стартует собственный процесс rdpclip.exe
. С помощью Task Manager вы можете завершить процесс rdpclip.exe (RDP Clipboard Monitor/ Монитор буфера обмена RDP) и запустить его вручную (Task Manager -> File -> Start new task -> rdpclip
-> 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 буфер обмена должны быть выполнены следующие условия:
- В настройках RDP клиента, который вы используете для подключения к удаленному компьютеру должна быть разрешена опция Clipboard/Буфер обмена. В стандартном mstsc.exe включите на вкладке Local Resources в секции Choose the devices and resources that you want to use in your remote session опцию ClipboardЕсли вы используете другой RDP клиент, например Remote Desktop Connection Manager или mRemoteNG, имейте в виду что опция удаленного буфера обмена может называться по-другому.
- На удаленном RDP/RDS хосте должно быть разрешено передавать данные через буфер обмена (об этом ниже).
Как запретить/разрешить копирование через буфер обмена 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 сесии. Используется в том числе при копировании файлов). Аналогичные политики есть в пользовательском разделе GPO. Это значит, что вы можете отключить буфер обмен и подключаемые диски только для определенных пользователей RDP хоста. На отдельно-стоящем компьютере для отключения буфера обмена RDP для не-администраторов, можно использовать MLGPO.
- DisableClipboardRedirection = 1
- DisableDriveRedirection = 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
Если у вас используются RDS сервера, можно отключить буфер обмена и локальные диски в настройках коллекции: Remote Desktop Services -> Collections -> Tasks -> Edit Properties -> Client Settings. Снимите галки у опций “Clipboard” и “Drive” в секции Enable redirecting for the following.
Если вы хотите запретить копировать из терминальной RDP сессии только для пользователей, но не для администраторов, можно изменить NTFS разрешения на файл c:\windows\system32\rdpclip.exe
. Необходимо в свойствах файл убрать разрешение Read/Execute для встроенной группы Users (придется сначала изменить владельца файла с TrustedInstaller).
установил win 2008 r2 sp1 rus
включил сервер печати. но огда пользователи по терминалке на него заходят, то их принтеры с ними не переходят в сессию. не подскажете в чем может быть дело?
Воспользуйтесь возможностями Easy Print , или установите на сервер такие-же драйвера печати, которые стоят на клиенте. Первый вариант проще — главное, чтобы клиенты удовлетворяли требованиям, описанным в статье
Спасибо, разобрался. оказывается выбирал галочки «принтера, диски, буфер обмена…» думал, что написано, чтобы за собой брали, а там надо было дочитать «чтобы отключались эти функции»
Спасибо! Тоже самое начало происходить 2 недели назад, помогает перезагрузка сервера. Хватило на неделю, эта канитель начала происходить снова.
Остановка и запуск процесса rdpclip.exe помогает, но через раз. Когда после первого раза — все становится ок, а когда надо 10 раз его кильнуть.
сделал батник
TASKKILL /F /IM rdpclip.exe
rdpclip.exe
чтоб пользователи сами убивали и запускали процесс, помогает так же, через раз. Порой раз 20 надо запустить. А то и не помогает совсем.
И да, наблюдается только у тех у кого рабочая система XP, кто в 7ках работают — у тех нету проблемы с copy/paste.
Вы как нибудь победили эту проблему в итоге?
Alex Подобная проблема возникает нечасто, так что какого-то дополнительного траблшутинга и не проводилось. Хватало и перезапуска rdpclip.exe.
Как вариант, попробуйте обновить версию rdp клиента на клиентах с XP до последней доступной. Если удастся найти причину, будьте добры, поделитесь.
Проблема не только на ХР. Два клиента на 7ке жалуются на пропадающий буфер обмена (они много его используют), при этом те, кто мало копирует о проблеме вообще не знают.
На портале майкрософт в качестве решения лежат ветки реестра, для проверки. Все проверил — все ок, но проблема не уходит — что делать?
itpro — похоже на то что обновление прокатило, была версия 6.1, сейчас у проблемных 7я.
Вот с 24 по сегодня, как говорится, не было ни единого разрыва 🙂
Спасибо!
Nikin Подскажите, а что за решение с реестром вам удалось найти?
AlexПожалуйста 🙂
ссылку не хочет добавлять
«http://social.technet.microsoft.com/Forums/en-GB/winserverTS/thread/d92ad1c3-826f-496b-8145-bb31615c55fe»
никак не хочет добавлять ссылку. 🙁
Yuan Wang Microsoft China-PSG
Hi,
Please check your client PC and Terminal Server Registry Keys and Values.
You can open RUN, and type “regedit” to open the Registry Ediror.
Is the fDisableClip set to 0 under
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Winstations\RDP-Tcp ?
If fDisableClip is set to 1 rdpclip.exe will terminate, because clipboard mapping is disabled. Check that rdpclip is still listed under Addins
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Addins\Clip Redirector
Name REG_SZ RDPClip
Type REG_DWORD 0x00000003
______________________________
Sumesh P — Microsoft Online Community Support
Please check the following:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
REG WORD: fDisableClip is set to 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\RDPWD
REG WORD: fDisableClip is set to 0
Verify that the following registry values are set to «rdpclip»
Key: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\AddIns\Clip Redirector
Value: Name
Type: REG_SZ
Data: rdpclip
Key: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd
Value: StartupPrograms
Type: REG_SZ
Data: rdpclip
Make sure the policy is not enabled:
Computer Configuration —> Admin templates —> Windows Components —> Terminal Services—Terminal server -Device and Resource redirection —> «Do not allow clipboard redirection»
Let us know if that helps.
_________________________________
лучший ответ:
EFabian (Partner)
there was no entry like this:
Key: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd
Value: StartupPrograms
Type: REG_SZ
Data: rdpclip
so I created one and now it is working.
Thanks!!!
Nikin По ссылке на технет описана проблема, когда rdpclip совсем не стартовал на сервере, в вашем же случае он почему-то иногда отваливается.. можно конечно посидеть помониторить процесс rdpclip.exe на терминале, либо сделать задание планировщика, которое раз в 5 минут проверяет наличие процесса, и если он не запущен — запускает его. Костыли, конечно, но других идей нет (или обращайтесь в поддержку MS)
трудность в том, что он «не полностью» отваливается. Т.е. копирование происходит, но не с 1-го раза, а с х0-го…
Если на пк клиента стоит нод32 то ищи причину в этом. для чистоты эксперимена выруби нод и переконнектись в терминале. у меня сработало. как настроить нод для того чтобы не блокировал буфер искать не стал — купил каспер и забил.
кто знает как настроить нод — напишите, на все пк не хочется каспер покупать, только что лицензию нод продлил.
спасибо!!!!! Достаточно было просто снять указанный процесс и всё заработало!!!
Запилите батник:
cls
taskkill /F /FI «USERNAME eq %USERNAME%» /IM rdpclip.exe
ping -n 1 -w 1000 1.1.1.1>nul
start rdpclip.exe
Мне помогает всегда с первого раза. Локальная тачка: Win 7 x86, терминал: Server 2003, 2008
Егор, имеешь в виду что этот батник нужно иметь прямо на рабочем столе терминального сервер ?
Спасибо большое!!!!
Полезная статья!!!
Большое спасибо!!!думал уже сервак выкидывать в окно, значит еще рановато 🙂
Спасибо!
Вот огромное спасибище автору!!
Спасибо, бро! Убийство rdpclip помогло.
Пользователь может пристрелить собственный процесс rdpclip.exe с помощью такого PowerShell скрипта:
(Get-WmiObject -Query "select * from Win32_Process where name='RDPClip.exe'"|?{$_.GetOwner().User -eq $ENV:USERNAME}).Terminate()
rdpclip.exe
Просто разместите ярлык на рабочем столе пользователя.
Не знаю с чем связано, но столкнулся с этой траблой на древнем серваке win2003, все перепробовал, разве только новый транспорт не делал, но не работает буфер и все, пробросы принтеов дисков вся эта мелоч без проблем, даже звук и тот срабатывает. А буфер ни в какую. Надо еще рестартануть сервре попробовать. А вот почему отваливается кто нибудь нашел, или это из тех проблем которые не лечатся у мелкомягки, и только прикручивать очередной костыль?