Как поднять сервер печати в доменной сети

Posted by

Задача: поднять сервер печати в доменной сети

Все дальнейшие действия будут происходит в домене уровня: Windows 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, и оставляем галку только сервер печати ()

Первым принтером будет 10.7.8.20 (HP LaserJet P2055dn), качаем с официального сайта драйвера

как под архитектуру Windows 7 x86/x64 (и PCL5/PCL6)

Скачиваю драйвера под принтер HP 2055dnНа терминальном сервере создаю каталог и распаковываю пока файлы 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

Устанавливаю универсальные драйвера, как x86 так и x64А после Finish, теперь по такому же принципу проделываю и для архитектуры x64, только на шаге добавления уже отмечаем галочкой не x86, а x64.

На заметку: но наиболее правильным будет добавление драйверов на принт-сервер не через Add Driver…, а Manage Drivers — вкладка DriversAdd…

Важно: драйвера обязательно должны быть одной версии для принтера.

В итоге в списке драйверов будущего сервера печати у Вас должно получиться следующее:

Драйвера для обоих архитектур установлены в Print ServerТеперь когда драйвера имеются, уже можно подключить/завести сетевой принтер на сервер печати:

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

Публикую принтер в Active DirectoryНа заметку: принтера на print server лучше заводить по tcp/ip, чем как выше через WSD-port, но можно просто изменить, открыв в оснастке Print Management — Print Servers — srv-print — Printer — найти искомый принтер, вызвать его Properties (Свойства) — вкладка PortsAdd Port — Standard TCP/IP Port — New Port:

  • Printer Name or IP Address: 10.7.8.20
  • Port Name: автоматически подставит из первого поля

В конечном итоге настройки порта для данного принтера должны и будут иметь вид представленного в целях визуализации как должно быть скриншота ниже:

Завожу принтер в Print Server

Теперь нужно опубликовать данный принтер на пользователя 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 в итоге у Вас должно быть в точности как на представленном скриншоте ниже.

GPO по установки принтера может назначаться на компьютера

Привязка принтера на пользователя:
GPO по установки принтера может назначаться на пользователей/группу пользователей

Теперь переходим на домен контроллер открываю оснастку управления групповыми политиками, отрыв на редактирование:

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\{F8A6C476-EE2B-4AE4-9008-E3F63FFBE69A}\User\Scripts\Logon

На заметку: файл 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), затем авторизовался, открыть оснастку «Устройств и Принтеры» и вот он мой добавленный политикой принтер:
Политика применилась и принтер через GPO установлен с Print ServerДля того, чтобы дать возможность пользователям управлять своими отправленными заданиями на печать нужно сделать следующее: На 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.