суббота, 13 марта 2021 г.

Windows 10, RDP, принтеры!

Картинка из открытых источников

Обратилась тут ко мне на днях одна небольшая организация помочь решить проблему с печатью на локальном принтере в сессии RDP. По словам молодого специалиста - эникейщика, который, можно сказать, сопровождает парк машин данной организации, после апгрейда "сервера" и перевода его на Windows 10, у пользователей сеанса RDP стали возникать проблемы с определением их локального принтера. Да-да, вы не ослышались, на сервере стоит именно Windows 10, а несколько сессий RDP реализовано через популярную утилиту RDP wrapper


 
Я не буду останавливаться на вопросе организации доступа нескольких пользователей через RDP к машине, управляемой не серверной ОС Microsoft, а также лицензионной чистотой использования таких утилит как RDP wrapper. По этим вопросам в интернете очень много информации и не найдет ее только ленивый.

Мне было интересно решить обозначенную проблему, учитывая, что до апгрейда "сервер" стоял под управлением Windows 7 с той же самой утилитой RDP wrapper несколько лет, и все замечательно работало без дополнительных плясок с бубном и игрой на балалайке.  Пользователи, в том числе новые, подключались к серверу и их локальные принтеры автоматически определялись в сессии RDP и использовались пользователями безо всяких проблем и ограничений. 

С новым сервером под управлением Windows 10  в связке с RDP wrapper пользователи тоже подключались к серверу, но их локальные принтеры ни в какую не желали автоматически определяться в сессии RDP. Отчасти, проблему помогала решить "принудительная" установка драйверов используемого принтера и организация перенаправления принтера вручную (как это требуется делать с принтерами, не поддерживающими технологию Easy Print). И если с пользователями, подключающимися с одного и того же компьютера, это хоть как-то облегчало работу, то с пользователями, подключающимися с 2-х и более компьютеров - нет. Принтер мог "магически" определиться и печатать, или не определиться, или вдруг "ожить" и прогнать через себя весь лоток бумаги после разрыва сессии RDP. На лицо была "плавающая" проблема, которую не любит ни один айтишник :))). 

На решение проблемы натолкнул тот факт, что прямое подключение RDP, без использования утилиты RDP wrapper, работает так, как и ожидается - локальный принтер тут же перенаправляется и пользователю ничего не мешает на нем печатать. Поиск в интернете по данному направлению принес свои плоды - оказалось, что данная проблема уже была зафиксирована пользователями RDP wrapper еще со времен апдейта Windows 10 до версии 1803 (например, тут вы можете прочитать об этом чуть больше). Как показала практика, в локализациях Windows 10, отличных от английской, начиная с версии 1803 технология Easy Print при использовании утилиты RDP wrapper практически не работает ни с одним принтером. Почему это произошло и как с этим бороться я, на момент написания данной заметки, так и не нашел информации. При этом проблему не решило ни одно из последующих обновлений самой Windows 10 (вплоть до версии 20H2), ни различные конфигурационные файлы RDP wrapper. В английской версии Windows 10 все работает, в русской - нет. А учитывая тот факт, что разработчик RDP wrapper уже давно забросил свой проект, ожидать решения проблемы с его стороны не приходится.

Единственным выходом в данной ситуации (кроме инсталляции полноценного серверного решения, конечно же) стало использование модифицированного файла termsrv.dll. Подмена оригинального файла файлом, скачанным с одного из форумов, продемонстрировало полную работоспособность данного способа. Пользователи подключались и их локальные принтеры автоматически перенаправлялись из сеанса RDP. Но напоминаю, что подобные "решения", как минимум, являются нарушением лицензионного соглашения, а, возможно, и чего более серьезного

Как итог, организация ушла думать о необходимости пробретения серверного решения Microsoft, либо о переходе на более экономичное решение в виде open source. Со своей же стороны, надеюсь, что информация будет полезна тем, кто столкнулся с аналогичной проблемой. На этом у меня все ))). 

2 комментария:

  1. хоть бы файл приложил или написал, где конкретно скачал)

    ОтветитьУдалить
    Ответы
    1. Правила блогов Google запрещают публикацию подобных ссылок ;-).
      Но поиск в том же Google позволяет очень быстро его найти. Такой вот... парадокс))).

      Удалить