- Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
- Microsoft Terminal Services – Практика использования Easy Print
- Настройка Easy Print в Windows Server 2012 R2
- Настройка Easy Print на стороне клиента
- Настройка Easy Print на стороне сервера Remote Desktop Server
- Как поднять сервер печати в доменной сети
Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве
Microsoft Terminal Services – Практика использования Easy Print
Минимальные требования для клиентских ПК для использования универсального драйвера печати Easy Print таковы:
- Microsoft Windows XP SP3, Microsoft Windows Vista SP1, Microsoft Windows 7
- Средство подключения к удаленному рабочему столу (RDP Client) версии не ниже 6.1 (6.0.6001)
Этот компонент распространяется в составе SP3 для Windows XP и SP1 для Windows Vista - Microsoft .NET Framework 3.0 с пакетом обновления 1 (SP1) (можно использовать Microsoft .NET Framework 3.5)
Распространяется через WSUS, хотя может быть установлен и вручную.
Далее…при подключении клиента к серверу в свойствах RDP клиента на закладке “Локальные ресурсы” должно быть включено перенаправление принтеров.
Обратите также внимание на то, что в свойствах учётной записи пользователя в домене (Закладка “Среда”) должны быть включены опции “Подключение принтеров при входе” и “По умолчанию выбрать основной принтер клиента”. Это грабли на которые я сам однажды наступил )))
Поведение системы печати служб терминалов Windows Server 2008 по умолчанию предполагает использование драйвера Easy Print для всех клиентских принтеров.
Практика показала что не во всех случаях драйвер Easy Print работает корректно (например при некоторых сценариях съезжают поля при печати документов или вовсе не печатаются некоторые печатные формы из 1С). Для решения этой проблемы на наших терминальных серверах мы изменили настройки системы печати по умолчанию на следующий режим работы: при подключении клиента к серверу служба печати сначала пытается найти родной драйвер для каждого принтера клиента, если находит – использует его, если не находит использует для этого принтера драйвер Easy Print.
На сервер установлены последние версии драйверов основных используемых моделей принтеров. Для более корректного взаимодействия служб печати клиента и сервера рекомендуется использовать одинаковые версии драйверов на сервере и на клиенте.
Разрешение проблем в работе Easy Print на Windows Server 2008 / 2008 R2
В случае проблем с перенаправлением принтеров клиента в терминальную сессию с помощью Easy Print необходимо выполнить нижеописанный ряд проверок:
- Проверяем есть ли на клиентском компьютере требуемая для работы Easy Print версия .NET framework.
- Проверяем на клиенте то, что в свойствах запускаемого RDC клиента (mstsc.exe) включена опция перенаправления принтеров клиента на закладке “Локальные ресурсы”. Если вместо клиента мы запускаем настроенный RDP ярлык то открываем его в текстовом редакторе и убеждаемся в том что присутствует опция перенаправления принтеров клиента в виде строки: redirectprinters:i:1
- Проверяем свойства доменной учетной записи пользователя. Как было отмечено ранее, в свойствах учётной записи пользователя в домене (Закладка “Среда”) должны быть включены опции “Подключение принтеров при входе” и “По умолчанию выбрать основной принтер клиента”.
- Проверяем как сконфигурированы групповые политики влияющие на Easy Print на терминальном сервере. Соответствующий раздел GPO можно найти по пути: Computer Configuration -> Administrative templates -Windows Components -> Remote Desktop Services > Remote Desktop Session Host -> Printer Redirection .
Опция “ Use Remote Desktop Easy Print printer driver first ” должна быть включена для работы редиректа принтеров с приоритетным использованием драйвера Easy Print или выключена в том случае если вы хотите использовать специально установленные драйвера принтеров на сервере. - Проверяем конфигурацию терминального сервера (оснастка “Remote Desktop Configuration Tool” или tsconfig.msc) на предмет того, что опция редиректа “Windows Printer” не отмечена как отключенная.
- Проверяем что и на клиенте и на сервера запущена служба очереди печати (spooler service). Если служба запущена то проверяем корректность установленных прав на данную службу. Ниже приведен пример того как должны выглядеть правильные настройки безопасности службы очереди печати: C:>sc sdshow spooler
D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY) - Если подключение клиента производится через RD Gateway проверяем что на сервере RD Gateway выключена опция запрета перенаправления клиентских принтеров.
- Если у клиента большое количество принтеров и они перенаправляются в ограниченном количестве, то стоит обратить внимание на значение ключа реестра MaxPrintersPerSession (REG_DWORD) в ветке HKLMSoftwarePoliciesMicrosoftWindows NTTerminal Services . По умолчанию это значение равно 20 (т.е. не больше 20 принтеров на одну сессию).
Если вывод команды отображения настроек безопасности отличен от указанного, например отсутствуют разрешения в дескрипторе безопасности для “AU” (Authenticated User), то устанавливаем необходимые для корректной работы службы права следующей командой
C:> sc sdset spooler D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)
[SC] SetServiceObjectSecurity SUCCESS
После установки разрешений необходимо перезагрузить компьютер.
Настройка Easy Print в Windows Server 2012 R2
Технология TS Easy Print была впервые представлена в Windows Server 2008 в качестве альтернативы использованию традиционной подсистемы печати на терминальных серверах RDS. Easy Print позволяет избежать установки драйверов для перенаправленных принтеров на сервере терминалов и позволяет сопоставлять перенаправленный клиентский принтер с драйвером Easy Print. Это значительно повышает стабильность и производительность работы службы диспетчера очереди печати и сервера RDS в целом.
Функционал Easy Print основана на спецификациях, определенных в стандарте XPS для драйверов принтеров. Основные преимущества формата XPS: использование открытого формата документа, портативность и независимость от аппаратной платформы, низкие требования к пропускной способности канала (за счет использования более легкого стандарта XML). Задание печати XPS через сеанс RDP передается на клиентский ПК и обрабатывается локальным драйвером печати.
Настройка Easy Print на стороне клиента
Для использования Easy Print на стороне клиента, он должен соответствовать следующим требованиям:
- Операционная система- Windows XP SP3 и выше
- Версия RDP клиента 6.1 (mstsc.exe — 6.0.6001) и выше
- Наличие установленного .NET Framework 3.0 SP1 или .NET 3.5
- В параметрах RDP подключения на вкладке Локальные ресурсы (Local Resources) в разделе Выберите устройства и ресурсы, которые вы хотите использовать во время удаленного сеанс должна быть отмечена опция «Принтеры»
Если вместо клиент mstsc.exe, вы используете для подключения настроенный.rdp файл, в нем должна присутствовать следующая строка:
Настройка Easy Print на стороне сервера Remote Desktop Server
Драйвер печати Easy Printer устанавливается на сервере при развертывании роли служб удаленных рабочих столов (RDS), а в списке принтеров появляется новый принтер с именем Microsoft XPS Document Writer. Этот драйвер печати поддерживает различные модели принтеров.
В Windows Server 2012 R2 включить обязательное использование технологии Easy Print на стороне сервера RDS можно только через групповые политики.
- Откройте редактор локальной (gpedit.msc) или доменных (GPMC.msc) GPO
- Перейдите в раздел Computer Configuration –> Administrative Templates –> Windows Components -> Remote Desktop Services –> Remote Desktop Session Host -> Printer Redirection (аналогичная политика имеется и в пользовательском разделе GPO)
Printer Redirection » srcset=»https://vmblog.ru/wp-content/uploads/2017/10/remote-desktop-session-host-greater-printer-redirection.png 978w, https://vmblog.ru/wp-content/uploads/2017/10/remote-desktop-session-host-greater-printer-redirection-300×206.png 300w, https://vmblog.ru/wp-content/uploads/2017/10/remote-desktop-session-host-greater-printer-redirection-768×526.png 768w» sizes=»(max-width: 978px) 100vw, 978px»/>
- Найдите и включите политику Use Remote Desktop Easy Print driver first
Совет. В том случае, если клиент не поддерживает использование драйвера Easy Print, сервер RDS автоматически пытается использовать установленный на нем драйвер для данной модели принтера (если он, конечно, имеется).
После привязки политики к нужному контейнеру AD, можно протестировать политику.
- Обновите групповые политики на сервере Remote Desktop командой gpupdate /force
- Завершите текущую RDP сессию (logoff) и подключитесь к серверу еще раз
- Перейдите в раздел Панели управления -> Устройства и принтеры
- Найдите принтер, перенаправленный в рамках вашей RDP сессии и откройте его свойства
- Перейдите на вкладку Advanced и удостоверьтесь, что для данного принтера используется драйвер Remote Desktop Easy Print
- Send the test print job and make sure that it is properly printed on a local printer
По умолчанию количество перенаправленных принтеров в сессии ограничено числом 20. Изменить эту настройку можно через реестр. Для этого в ветке
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
нужно создать параметр MaxPrintersPerSession со значением, равным максимальному количеству принтеров, которые должны перенаправляться в рамках RDP сессии.
Для лучшей производительности предпочтительнее перенаправлять с клиента только один принтер, используемый по умолчанию. Для реализации этой концепции достаточно включить политику Redirect only the default client printer.
Таким образом, благодаря использованию Remote Desktop Easy Print, существенно упрощается настройка подсистемы печати на терминальных серверах, а администратору нет необходимости устанавливать на RDS серверах драйвера для различных моделей принтеров, используемых клиентами.
Как поднять сервер печати в доменной сети
Задача: поднять сервер печати в доменной сети
Все дальнейшие действия будут происходит в домене уровня: Windows Server 2008 R2 SP1 Enterprise (для Server 2012 R2 Std все аналогично)
Мне потребуется развернуть еще одну систему в домене на базе операционной системы Windows Server 2008 R2 SP1 Enterprise — srv-print.polygon.local и уже на ней развернуть роль сервера печати, потому как я не поклонник нагромождения всего и вся на одной системе, даже в тестовых целях ну конечно если уж слишком надо, то это возможно. Ниже я рассмотрю все трудности и шаги по исполнению поставленной себе задачи, как задокумментировать весь процесс со всеми нюансами и наблюдениями.
Авторизуюсь в системе с правами администратора домена на станции (srv-print):
Start — Control Panel — Administrative Tools — Server Manager — Roles — Add Roles, роль называется: Print And Document Services, и оставляем галку только сервер печати (Print Server)
Первым принтером будет 10.7.8.20 (HP LaserJet P2055dn), качаем с официального сайта драйвера
как под архитектуру Windows 7 x86/x64 (и PCL5/PCL6)
На терминальном сервере создаю каталог и распаковываю пока файлы upd-pcl6 туда.
Теперь когда роль сервера печати установлена, пора переходить к полной настройке:
Start — Control Panel — Administrative Tools — запускаем оснастку Print Management
в этой оснастке для принтеров использующихся у Вас в обслуживании загружаю драйвера для принтера как для архитектуры x86 так и для x64:
Print Servers — srv-print (local) — Drivers — через правый клик вызываю мастер «Add Driver», Next, сперва отмечаю x86 (Type 3 — User Mode) ,Next — нажимаю Have Disk, посредством проводника системы указываю путь с распакованными драйверами для архитектуры Windows x86, в моем случаем путь следующий:
c:\Driver\upd-pcl6-x32-6.2.0.20412
Выделив драйвер нажимаю Next
А после Finish, теперь по такому же принципу проделываю и для архитектуры x64, только на шаге добавления уже отмечаем галочкой не x86, а x64.
На заметку: но наиболее правильным будет добавление драйверов на принт-сервер не через Add Driver…, а Manage Drivers — вкладка Drivers — Add…
Важно: драйвера обязательно должны быть одной версии для принтера.
В итоге в списке драйверов будущего сервера печати у Вас должно получиться следующее:
Теперь когда драйвера имеются, уже можно подключить/завести сетевой принтер на сервер печати:
Print Servers — srv-print (local) — Printers — и через правый клик вызываем мастер «Add Printer…», здесь нужно указать как достучаться до принтера, я выбираю пункт: Add a TCP/IP or Web Services Printer by IP address or hostname и нажимаю Next, далее указываю параметры подключения:
- Type of Device: Autodetect
- Host name or IP address: 10.7.8.20
- Port name: 10.7.8.20
и обязательно ставим галочку: Auto detect the printer driver to use и нажимаем Next, следующим шагом нужно указать именование принтера (обычно я делаю с учетом расположенности по определению местонахождения):
- Printer Name: One-Floor-HPLJP-2055DN-SKLAD
и ставим галочку на параметре: Share this printer
- Share name: One-Floor-HPLJP-2055DN-SKLAD
- Render print jobs on client computers
- List in the directory.
теперь нажимаю Next, Next, Finish
На заметку: принтера на print server лучше заводить по tcp/ip, чем как выше через WSD-port, но можно просто изменить, открыв в оснастке Print Management — Print Servers — srv-print — Printer — найти искомый принтер, вызвать его Properties (Свойства) — вкладка Ports — Add Port — Standard TCP/IP Port — New Port:
- Printer Name or IP Address: 10.7.8.20
- Port Name: автоматически подставит из первого поля
В конечном итоге настройки порта для данного принтера должны и будут иметь вид представленного в целях визуализации как должно быть скриншота ниже:
Теперь нужно опубликовать данный принтер на пользователя alektest и произвести печать:
На заметку: удобнее управлять группой чем конкретными пользователями/компьютерами, Я всегда использую группы (она всегда может вдруг понадобиться если скажет сделать все то же самое что и этого пользователя) так проще.
На домен контроллере в оснастке Start — Control Panel — Administrative Tools — Active Directory Users and Computer текущего домена polygon.local создаю группу (имя: B_PRN_ONE-FLOOR-HPLJP-2055DN-SKLAD) в которую помещаю имя пользователя (alektest).
На домен контроллере в оснастке Start — Control Panel — Administrative Tools — Group Policy Management создаю групповую политику с именем GPO_PRN_ONE_FLOOR_HPLJP_2055DN-SKLAD и нацеливаю ее на созданную ранее группу пользователей у которых должен установиться данный принтер.
Теперь переключаюсь на систему где развернут сервис печати.
На заметку: роли AD и Print Server можно развернуть и на одной системе, но лучше придерживаться правила (если позволяют ресурсы), одна система — один сервис или сервисы объединенные одним функционалом.
Start — Control Panel — Administrative Tools — запускаем оснастку Print Management — Print Servers — Printer — находим добавленный ранее принтер который относится у меня к складу, выделяю его и через правый клик запускаю мастер «Deploy with Group Policy», затем двигаюсь по шагам мастера: — Указываю наименование групповой политики под этот принтер, нажимаю Browse из списка всех политик моего домена нахожу ту созданную ранее и нажимаю кнопку OK. Теперь нужно определить на кого будет распространяться данная политика: либо на пользователя, либо на компьютер, у меня на компьютер, а потому отмечаю пункт: The computer that this GPO applies to (per machine) и нажимаю Add в итоге у Вас должно быть в точности как на представленном скриншоте ниже.
Привязка принтера на пользователя:
Теперь переходим на домен контроллер открываю оснастку управления групповыми политиками, отрыв на редактирование:
Start — Control Panel — Administrative Tools — Group Policy Management — GPO_PRN_ONE_FLOOR_HPLJP_2055DN-SKLAD — User Configuration — Policies — Windows Settings — Scripts (Logon/Logoff) — Logon — Add
- Script Name: PushPrinterConnections.exe
- Script Parameters: -log (чтобы на рабочих станциях формировать логи)
и нажимаю OK окна Add a Script
, а после сохраняю первые изменения нажатием кнопки Apply
На заметку: при добавленном параметре « -log » Файлы журналов записываются в %WINDIR%\temp\ppcMachine.log (для подключений на уровне компьютеров) и %temp%\ppcUser.log (для подключений на уровне пользователей) на компьютере, на котором применяется политика, только это все применимо к Windows XP на Windows 7 хоть и заявлено, что должно работать — не работает.
Затем узнаю идентификатор данной политики: Start — Control Panel — Administrative Tools — Group Policy Management — GPO_PRN_ONE_FLOOR_HPLJP_2055DN-SKLAD — вкладка: Details — и напротив параметра Unique ID и есть ее идентификатор (F8A6C476-EEE2B-4AE4-9008-E3F63FFBE69A), он нужен чтобы по адресу групповой политики положить файл PushPrinterConnections.exe который можно скопировать из c:\windows\system32\ (сервера где развернута служба Print Server)
Win + E → \\polygon.local\sysvol\polygon.local\Policies\
На заметку: файл PushPrinterConnections.exe на Windows Server 2008 R2 — 64-bit и он не будет работать там где политика применяется к Windows 7 x86, а потому данный файл необходимо взять из Windows Server 2008 x86.
Использование файла PushPrinterConnections.exe оправдана только тогда когда в Вашей доменной сети используется системы Windows XP & Windows Server 2003.
В процессе тестирования решил опробовать, как поведен себя установка назначенного политикой принтера если драйвера у него не универсальные, а именные, к примеру: HP LaserJet P2050 Series PCL6
Назначил политику на компьютер (W7X86), перезагрузил рабочую станцию (W7X86), затем авторизовался, открыть оснастку «Устройств и Принтеры» и вот он мой добавленный политикой принтер:
Для того, чтобы дать возможность пользователям управлять своими отправленными заданиями на печать нужно сделать следующее: На Print Server — Start — Control Panel — Administrative Tools — Print Management — Print Servers — srv-print (local) — Printers — находим нужный принтер, через правый клик по нему вызываем его Properties (Свойства), затем вкладка Security. По умолчанию выставлена галочка разрешающая печать (Print) для Всех, чтобы управлять этим принтером следует поставить добавить группу пользователей (или компьютеров) и уже нацеленно ей дать права поставив галочку у параметра Manage this printer.
- Политика — Принтер на пользователя — добавляем пользователя в группу, делаем Logoff/Logon и принтер устанавливается пользователю.
- Политика — Принтер на компьютер — добавляем компьютер в группу, перезагружаем компьютер и принтер устанавливается на компьютер и доступен любому пользователю на данной рабочей станции.
Итого: Print Server отлично работает, как с универсальными драйверами так и именными, основные моменты разобраны, потихоньку буду налаживать работу инфраструктуры на тот функционал задействованных систем на которые они способны. А бегать вручную и добавлять каждому принтер уже как-то надоело.
На заметку: хоть я и написал выше, что с универсальными драйверами работает, но все же лучше остановиться на именных, у меня были случаи когда ни на пользователя, ни на компьютер политика не распространялась, а вот с именными таких проблем я не встречал. Да и порой печать из некоторых программ с универсальными драйверами идет криво.
На заметку: если назначенный политикой принтер на пользователя все равно не отображается в «Устройства и Принтеры», то значит политика еще не дошла до пользователя, можно либо перезагрузить систему, либо же в командной строке набрать команду gpupdate /force , а после сделать Logoff/Logon. И вот теперь видны все назначенные принтера:
Вот собственно и всё, с уважением Олло Александр aka ekzorchik.