Настройка параметров сервера печати. Конфигурирование портов сервера печати

  • Tutorial


Настоящий админ может спать спокойно лишь тогда, когда у него всё бэкапится, мониторится и дублируется. Или когда он работает в хорошей команде, где всегда можно свалить вину на другого.
Так получилось, что я в своей работе использую в основном продукты Microsoft и могу сказать, что компания серьезно подходит к резервированию своих сервисов: Active Directory, Exchange DAG, SQL Always On, DFSR и т.д. Как и везде, здесь есть как весьма изящные и удачные реализации, так и явно неудобные и тяжелые. Для сервиса печати тоже есть решение, но для него необходима кластеризация на базе Hyper-V. А хотелось простого решения “из коробки”, не требующего дополнительных финансов. За основу была взята Windows 2012 R2, но скорее всего та же схема без проблем будет работать на любых серверных версиях, начиная с Windows 2008, и даже клиентских ОС от Vista и выше (привет любителям экономить бюджет!). Кому интересно - прошу под кат.

Disclaimer

Дабы уважить труд индусов Так как аудитория Хабра в основном русскоязычная и чтобы было проще начинающим админам, в примерах использован русский вариант интерфейса Windows. Ссылки, где это возможно, тоже ведут на русскоязычные ресурсы.

Немного теории

Кто не любит теорию и хочет быстрее поклацать мышью и клавиатурой, может сразу перейти к следующей части.
Как было сказано выше, официальная рекомендация на сегодняшний день - это решение с использованием кластеризации и виртуализации Hyper-V. Также ничто не мешает обеспечить отказоустойчивость сервиса печати на уровне системы виртуализации, причем не обязательно Hyper-V, но такие решения стоят денег.
Мне очень хотелось что-нибудь похожее на DHCP Failover , но для роли принт-сервера.
В интернете в целом и на хабре ничего подходящего не нашлось - и пришлось изобретать самому.

Суть идеи в одном абзаце
Описанное ниже решение основано на использовании утилиты BrintBrm, входящей в стандартную поставку Windows и пришедшую на замену printmig .
Резервный сервер работает в standby-режиме и с заданной периодичностью синхронизирует настройки с основным сервером с помощью этой утилиты. Для клиентских машин в DNS создан CNAME с малым TTL, ссылающийся на основной сервер. В случае аварии основного сервера админ правит CNAME, переключая клиентов на резервный сервер. Вот, собственно, и всё.
Если тема интересна и хочется познакомиться с уже набитыми мной шишками и путями обхода граблей, прошу следовать дальше.

Before you begin, или что нужно знать о PrintBrm

Итак, какова она, эта утилита PrintBrm, главное назначение которой - прислуживать серверу печати?
  • Ухожена. Имеет GUI-воплощение, которое именуется Перенос принтеров (Print Migration ) и может быть запущено из оснастки Управление печатью . GUI-вариант менее функционален и имеет проблемы с переносом портов.
  • Внимательна. По умолчанию обрабатывает ACL принтеров принт-сервера. Другими словами, если вы разрешили печатать на принтере \\printserver\printer1 только сотрудникам, входящим в AD-группу Бухгалтерия , то это ограничение будет учтено импорте/экспорте. Или не будет, если поставить ключ -NOACL . При этом ACL самого сервера печати не обрабатывается независимо от ключа.
  • Капризна. На момент импорта параметров из файла на целевом сервере должен быть хотя бы один расшаренный принтер, иначе получите ошибку.
  • Нежна. Теряется, видя пробелы в пути файла. При виде кавычек, обрамляющих такой путь, огорчается и выдает ошибку 0x8007007b.
  • Скромна. Если при попытке экспорта настроек указанный файл уже существует, перезаписать его не может, спросить стесняется и также завершается с ошибкой.
  • Таинственна. Всегда возвращает exit-код, равный 0 . Получается, идеальная программа.
  • Склонна к раздумьям. Может подзависнуть на стадии 100% минут на 5, а иногда и больше. Но потом одумывается и завершает работу (если, конечно, у вас хватит терпения не нажать Ctrl+C).
  • Внезапна и противоречива. Может устраивать вот такие сюрпризы .
  • Умна. Может переназначать исходные драйверы на другие. Например, с помощью XML-файла можно указать, что все драйверы HP Universal Printing PCL 5 в сохраненном файле на целевом сервере надо переназначить на HP Universal Printing PCL 6. На практике не использовал, но для кого-то может пригодиться.
  • Своенравна. Использовать ее для переноса настроек между доменами без доверия у меня не получилось, даже с ключом -NOACL. Либо не умеет в принципе, либо моя магия недостаточно сильна.
  • Познакомиться поближе можно и , а для тех отважных, кто не стесняется спросить напрямую, есть ключ /?

Подготовка среды

Предполагается, что у вас уже развернута Active Directory и вы знаете как минимум 3 способа вывести ее из строя и хотя бы 2 из них были опробованы на практике.

Немного лирики

Отступая от темы статьи, замечу, что мне нравится порядок, и я за то, чтобы на каждом сетевом принтере и МФУ была наклейка, соответствующая его сетевому имени. Это упрощает работу сотрудников ИТ, когда они пытаются выяснить у пользователя, на каком именно принтере фото котиков важные аналитические отчеты печатаются в ядовито-кислотных тонах вместо нежно-фисташковых. Клеить такие наклейки лучше на дно принтера, чтобы было всем было интереснее и веселее.
Также мне нравится, когда каждый сетевой принтер прописан во внутренней DNS-зоне. С этой задачей легко справится DHCP-сервер на базе Windows.
К примеру, имя принтера может быть формата msk-prn001 или sale-printer023, причем имена портов для этих принтеров на принт-сервере названы точно так же. Но это лично мои предпочтения, готов выслушать возражения в комментариях.


Будем исходить из того, что все принтеры сетевые и доступны для печати с основного и резервного принт-серверов. Пусть эти серверы называются prn-srv01 и prn-srv02 соответственно.
В качестве принт-серверов подойдут доменные машины на Windows Server не ниже 2008. В принципе подойдут и клиентские ОС, начиная с Vista, если уж очень хочется сэкономить. В примере используется Windows 2012 R2. Крайне желательно перед настройкой установить все необходимые обновления операционной системы как на серверы, так и на клиентские машины.

Вы и сами, конечно, понимаете, но кэп всё же требует обратить внимание: если принт-серверы будут виртуальными, то они обязательно должны быть разнесены по разным физическим серверам, иначе наш failover превратится просто в fail.

На prn-srv01 и prn-srv02 должна быть добавлена роль сервера печати. Мне удобнее для этого использовать командлет PowerShell:
Install-WindowsFeature Print-Services

Также на принт-серверах должен быть применен твик реестра, который исправляет ошибку 0×00000709 при обращении клиентских машин к принт-серверу по CNAME. Можно сделать это командой из статьи по ссылке выше:
reg add HKLM\SYSTEM\CurrentControlSet\Control\Print /v DnsOnWire /t REG_DWORD /d 1
После применения команды нужно перезапустить службу Диспетчер печати .
Рекомендую выделить для принт-серверов отдельный OU и раздавать эту настройку с помощью GPP .

Запускаем оснастку DNS на контроллере домена и включаем расширенное отображение:

клик



Расширенное отображение нужно, чтобы иметь возможность задать TTL для создаваемых записей.
В DNS создаем CNAME-запись print , ссылающуюся на prn-srv01 с 5-минутным значением TTL:

клик



клик



Это имя должны использовать клиентские машины для подключения к принт-серверу. Т.е. клиент будет подключаться к адресам \\print\printer01, \\print\printer02 и т.д.
Чем меньше значение TTL, тем чаще клиенты будут обновлять запись и быстрее “поймут”, что надо переключиться на другой сервер печати. Мне достаточно 5 минут.
Задав слишком малое значение, вы плодите DNS-трафик в своей сети, а указав час или два, вы подчеркнете свою стрессоустойчивость и крепкие нервы.
Альтернативный вариант добавления CNAME-записи с помощью PowerShell:
Import-Module DnsServer
Add-DnsServerResourceRecordCName -Name "print" -HostNameAlias "prn-srv01.lab.net" -ZoneName "lab.net" -TimeToLive 00:05:00

(Разумеется, lab.net меняем на ваш contoso.local или как там его)

Надо учесть, что если у вас несколько сайтов AD, то обновление DNS-записи во всех локациях займет больше времени за счет межсайтовой репликации. Форсировать процесс можно командой repadmin /syncall .

Средствами групповой политики разрешаем рядовым пользователям устанавливать драйверы с принт-сервера. О том, как это сделать, подробно написано .

Создаем служебную учетную запись в AD (я назвал ее svc-printsync) с неограниченным сроком действия пароля:

клик



Согласно требованиям PrintBrm, эта учетная запись должна обладать полными правами на принт-сервере, поэтому добавляем ее в домен-админы, чтобы наверняка всё работало и прописываем пароль в поле описания, чтобы не забыть локальную группу Администраторы на prn-srv01 и prn-srv02 (например, с помощью оснастки Управление компьютером ).

Настраиваем первый сервер

Если все нужные принтеры на основном принтере уже добавлены, то можно сразу перейти к разделу о настройке второго сервера.

С помощью оснастки Управление печатью добавляем на сервер драйверы нужных принтеров:

клик



Запустится мастер установки драйверов. Он интуитивно понятен, тут сами разберетесь. Обращу лишь внимание на момент с разрядностью.
Т.к. Windows 2012R2 поставляется только в x64-варианте, то драйверы тоже должны быть x64. Если же к серверу печати будут подключаться клиенты с x86-версиями Windows, не забудьте поставить соответствующий флажок:

клик



Некоторые комплекты драйверов содержат общий inf-файл и для x86, и для x64-систем, в других же присутствует разделение.

Ещё немного лирики

Многие драйверы поставляются в виде инсталлятора, но, учитывая, что эти инсталляторы ставят вместе с драйверами много всякого мусора, я стараюсь следовать принципу “необходимо и достаточно” и добавлять драйверы вручную, как описано выше.
Также в целях единообразия я по максимуму стремлюсь использовать Universal-вариант драйверов (есть практически у всех нормальных вендоров). Но с ним иногда могут быть проблемы. Так, однажды встретил баг в одной из версий HP Universal Printing PCL 6, при котором PDF-документ через EasyPrint в RDP-сеансе печатался зеркально слева направо.
Можно ещё посмотреть в сторону v4-драйверов .

Когда все необходимые драйверы добавлены, займемся портами и принтерами. Можно их добавить вручную из той же оснастки, но я рекомендую создать CSV-файл в Excel и скормить его PowerShell-скрипту. Разумеется, ничто не мешает вместо Excel использовать любой другой табличный редактор или вообще блокнот. Главное - чтобы разделитель и кодировка, указанные в скрипте, соответствовали разделителю и кодировке в CSV-файле.
Также обратите внимание, что имя драйвера в CSV-файле должно быть точно таким же, каким оно указано в оснастке Управление печатью .

Копи-паст в помощь


Пример CSV-файла


Хоть я писал выше, что мне нравится, когда все принтеры имеют унифицированные сетевые имена, в примере (поле Адрес принтера ) использован винегрет из IP-адресов и имен на случай, если порядок у вас в сети отсутствует будет наведен чуть позже.

Сохраним эту таблицу в CSV-формате:

клик


Примечание. Несмотря на то, что в поле “Тип файла” в качестве разделителей указаны запятые, у меня Excel разделителем сделал точку с запятой. Наверно, чтобы было интереснее и веселее.


А вот сам скрипт:

CreatePrintersFromCsv.ps1

#Откуда будем загружать данные $InputFile = "C:\Scripts\Printers.csv" #Разделитель и кодировка должны соответствовать формату CSV-файла $Printers = (Import-Csv $InputFile -Delimiter ";" -Encoding Default) #Все указанные в файле драйверы должны присутствовать на целевом сервере ForEach ($Printer in $Printers) { #Текст должен соответствовать заголовкам столбцов в файле $PrinterName = $Printer."Имя принтера" $ShareName = $Printer."Имя общего ресурса" $DriverName = $Printer."Имя драйвера" $PrinterAddr = $Printer."Адрес принтера" $Comment = $Printer."Комментарии" $Location = $Printer."Размещение" #Добавляем порт Add-PrinterPort -Name $PrinterAddr -PrinterHostAddress $PrinterAddr -SNMP 1 -SNMPCommunity "public" #Добавляем принтер Add-Printer -Name $PrinterName -DriverName $DriverName -PortName $PrinterAddr -Comment $Comment -Location $Location #и расшариваем его Set-Printer -Name $PrinterName -Shared $True -Published $False -ShareName $ShareName }


Если в качестве разделителя в вашем CSV используется знак табуляции, то в скрипте надо выставить -Delimiter "`t"

Учтите, что если во время работы скрипта какой-нибудь принтер будет недоступен с сервера, то его добавление на принт-сервер займет больше времени (2-3 минуты вместо нескольких секунд)

Результат работы скрипта:

клик


Чтобы убедиться, что на этом этапе всё работает, добавляем на любую из клиентских машин общий принтер с основного принт-сервера, используя ранее созданный CNAME (например, \\print\printer01), и пробуем распечатать на нем что-нибудь. Для этой цели лучше всего подойдет фраза “Превед, я бумажко”, набранная жирным шрифтом Arial с 200-м кеглем.

Настраиваем второй сервер

Un artista copia, un gran artista roba (Пабло Пикассо)

Наш prn-srv02 пока еще не дорос до уровня gran artista, поэтому ограничимся копированием. Хотя… можно легким движением руки...

Создаем и расшариваем хотя бы один принтер, иначе PrintBrm выдаст ошибку. Можно сделать фейковый, но при этом важно не выбрать неподходящий драйвер или порт. Например, принтер с драйвером Microsoft XPS Document Writer или портом FILE: расшарить не получится.

Создаём незатейливый скрипт синхронизации. Я предпочитаю PowerShell, но никто не запрещает сделать теплый ламповый батник.

PrintSync.ps1

#Путь к утилите PrintBrm $ProgramPath = "C:\Windows\System32\Spool\Tools\PrintBrm.exe" #Основной и резервный серверы $SourceServer = "prn-srv01" $DestServer = "prn-srv02" #Файл, куда выгружаем настройки. Путь не должен содержать пробелы, т.к. утилита PrintBrm не понимает кавычки в пути файла $ConfigFilePath = "C:\Scripts\prn-config.printerExport" #Экспортируем принтеры в файл $Arguments = "-s $SourceServer -f $ConfigFilePath -b" Start-process $ProgramPath -ArgumentList $Arguments -Wait -PassThru #Импортируем принтеры из файла $Arguments = "-s $DestServer -f $ConfigFilePath -r -o force" Start-process $ProgramPath -ArgumentList $Arguments -Wait -PassThru #Прибираемся за собой Del $ConfigFilePath

Кладем скрипт в укромное место (в примере это C:\Scripts ) и создаем задачу в Планировщике.
Запускать будем из-под ранее созданной учетной записи svc-printsync с наивысшими правами:

клик



Частоту выполнения определите для себя сами. Мне достаточно раз в сутки:

клик



На вкладке Действия создаем новое действие запуска PowerShell:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
В качестве аргументов задаем путь к скрипту со следующими параметрами:
C:\Scripts\PrintSync.ps1 -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass

клик



Остальные параметры задачи на вкладках Условия и Параметры оставляем по умолчанию.
При сохранении задачи будет запрошен пароль для учетной записи svc-printsync . Вы ведь его не забыли? Если уже забыли (статья-то длинная), то всё было сделано зря и жизнь не удалась сбросьте его с помощью оснастки ADUC или другим удобным способом и укажите его уже в поле описания, чтоб было спокойнее.

Примечание

Задание не обязательно должно выполняться на резервном принт-сервере. Если у вас есть отдельный сервер для запуска регламентных процедур, можете создать задачу на нем. При этом у учётной записи svc-printsync должно быть право на вход в качестве пакетного задания на этом сервере. По умолчанию такое право есть у локальной группы Операторы архива (Backup Operators ), и если в вашей среде это не изменено, то достаточно включить сервисную учётную запись в группу операторов архива того сервера, на котором будет работать задание.

В первый раз запускаем задание вручную и дожидаемся его завершения.
Для моего зоопарка, где около 50-ти принтеров разных видов, как вымирающих, так и недавно выведенных, процедура синхронизации занимает примерно 10 минут. Файл при этом весит почти 1ГБ.
Для ускорения процесса импорта/экспорта можно использовать ключ -NOBIN , который отвечает за копирование драйверов. Имеет смысл, когда парк принтеров состоит из одинаковых моделей и необходимые драйверы установлены на всех серверах.

После завершения запускаем оснастку Просмотр событий , переходим в раздел Журналы приложений и служб , открываем журнал Microsoft\Microsoft\PrintBRM\Администратор и анализируем его на предмет ошибок и предупреждений. И если их слишком много, то скорее чистим журнал, чтоб глаза не мозолили.

такая



Как ясно из текста, возникла проблема при переносе определенного драйвера. Просматривая журнал, составляем список проблемных драйверов и ставим их руками на резервный сервер, либо заменяем другими, которые не прочь попутешествовать. У меня были проблемы лишь с HP, Kyocera и Konica Minolta, для драйверов других производителей ошибок не выявилось (может потому, что они лучше, а может потому, что у нас их просто нет).
В итоге нужно добиться одинакового списка принтеров на основном и резервном серверах и отсутствия ошибок и предупреждений в логах.

Переключаемся на резерв

Под стук топоров и скрежет вил баррикадируем дверь в свой кабинет и отключаем телефон. Запускаем оснастку DNS и правим CNAME-запись, чтобы она указывала на резервный сервер:

клик



Через некоторое время (что вы там ставили в TTL?) угрожающие вопли стихнут, клиентские машины переключатся на prn-srv02 и дверь с телефоном можно будет разблокировать.

Возвращаемся обратно

Если за время восстановления основного сервера на резервном были изменения конфигурации, которые необходимо сохранить, запускаем синхронизацию в другую сторону. Для этого в указанном выше скрипте PrintSync.ps1 меняем местами значения переменных $SourceServer и $DestServer . После переноса изменений не забудьте вернуть эти значения обратно, иначе все изменения в конфигурации принтеров на prn-srv01 будут нещадно отметаться каждую ночь злой волей судьбы.
В оснастке DNS устанавливаем для CNAME-записи print значением конечного узла prn-srv01 - и всё возвращается на круги своя.

Что в итоге?

Бурные овации руководства, подкидывание админа на руках, повышение зарплаты (автору статьи - честные 10% от прибавки)…
Ну и несколько мыслей в сторону наведения дальнейшей красоты.

Чудес, к сожалению, на всех не хватает, и данное решение - не полноценный Failover. Если в момент крушения основного принт-сервера на нем будут непустые очереди печати, то их содержимое скорее всего канет в лету и кому-то придется повторять отправку на печать.

Зато очень удобно будет прозрачно для пользователей выполнять регламентное обслуживание серверов печати.


Фанаты автоматизации могут пойти дальше и создать скрипт, который на входе получает имена серверов с интервалом синхронизации и остальные настройки делает сам: создает сервисную учетную запись при необходимости, задание в планировщике и т.д.

Гуру мониторинга добавят наблюдение за выполнением задачи синхронизации и ошибками в логах.

Любители копать глубже могут продумать двухстороннюю синхронизацию в духе репликации AD с отслеживанием времени изменений по каждому принтеру. PrintBrm тут уже не поможет, но никто не отменял PowerShell!

Вишенкой на торте будет автоматическая установка принтеров на клиентских машинах с помощью GPP с нацеливанием на группу AD. Добавляем пользователя в группу - и ему прилетает нужный принтер. Правда, это уже другая история, выходящая за рамки статьи.

Надеюсь, для кого-то моя публикация окажется полезной. Желаю всем поменьше сбоев и жду вопросов и предложений в комментариях.

Только зарегистрированные пользователи могут участвовать в опросе. , пожалуйста.

"Принт-сервер " - многие наверняка слышали это слово, но не знают что это такое. Приподнимем завесу тайны и разберемся, что же такое "принт-сервер ".

Чтобы было понятней, обратимся к истории и посмотрим, как происходила печать раньше.

Давным-давно, когда компьютерные сети были диковинкой, и каждый компьютер работал сам по себе, пользователи печатали с компьютеров на индивидуальные принтеры, подключенные непосредственно к каждому компьютеру.

Время шло, компьютеры стали объединять в сети и в чью-то светлую голову однажды пришла мысль - а что если использовать один принтер для печати всех компьютеров? - в сеть-то они уже объединены! Сказано - сделано: к одному компьютеру подключен принтер, остальные по сети на него печатают. Однако сразу же выявился один серьезный недостаток - если выключить компьютер, к которому подключен принтер - печатать уже никто не может.

Так появились сетевые принтеры - помимо стандартных разъемов для подключения к компьютеру, они имеют сетевые порты, что позволяет подключать их в сеть напрямую без какого-либо компьютера. Таким образом, принтер становится доступным в любое время, поскольку не привязан ни к одному компьютеру в сети.

Но вот вопрос - что же делать со старыми принтерами? Как их сделать сетевыми, непривязанными к конкретному компьютеру? Ответ прост: установить принт-сервер !

Итак, мы приходим к тому, что принт-сервер - это устройство, которое позволяет подключить принтер, не имеющий сетевого порта к сети. Т.е. говоря еще проще: принт-сервер , это коробка, к которой с одной стороны подключается принтер, а с другой стороны - сетевой провод.

Однако стоит заметить, что в природе существуют так же и беспроводные принт-серверы , т.е. вместо сетевого провода они имеют антенну, посредством которой они связываются с точкой доступа и подключаются к сети без всяких проводов, что бывает очень удобно, когда есть необходимость установить принтер посреди комнаты, и сетевые провода, тянущиеся по полу, никак не допустимы.

В большинстве своем принтеры подключаются к компьютеру посредством порта USB, реже (старые модели) через порт LPT. Как следствие, существуют принт-серверы с различными портами: USB и LPT; так же встречаются и комбинированние варианты, когда принт-сервер имеет несколько портов, что позвляет подключать к нему сразу несколько устройств, причем бывает так, что и через LPT и через USB. Так же Вы можете встретить другие устройства, оснащенные принт-серверами - это могут быть сетевые накопители (например D-Link DNS-343), ADSL-модемы и другие сетевые устройства.

Если Вы решили купить принт-сервер в Краснодаре - обращайтесь к нам - мы поможем подобрать принт-сервер , совместимый с именно Вашим принтером, поскольку не каждый принт-сервер работает с любыми моделями принтеров.

Андрей Борзенко

Сегодня принтеры, непосредственно подключенные к сети, стали традиционным офисным оборудованием. Они обеспечивают быструю печать и простую установку независимо от местоположения, что так важно администраторам сети. Однако в организациях с локальной сетью малого и среднего масштаба самым распространенным вариантом совместной сетевой печати остается персональный принтер, подключенный к одному из ПК (рис. 1). Главное достоинство этого варианта - экономичность. Однако следует помнить, что при таком способе печати задействуются ресурсы того ПК, к которому подсоединен принтер, и производительность компьютера значительно снижается. Так что при больших объемах сетевой печати использовать данный ПК по прямому назначению становится весьма затруднительно. Выделение одного компьютера лишь для сетевой печати, равно как и приобретение специального сетевого принтера, часто неоправданно с финансовой точки зрения, особенно если объемы печати не превышают возможностей используемого печатающего устройства. В решении этой проблемы и призваны помочь так называемые принт-серверы, или серверы печати.

Принт-серверы представляют собой небольшие сетевые устройства, к которым могут подключаться один или несколько принтеров (рис. 2). Они бывают двух типов: внешние и внутренние (рис. 3). Последние выполнены в виде платы и, как правило, могут использоваться только с определенными печатающими устройствами. Наиболее заметное ограничение внутренних сетевых плат заключается в том, что их должен поддерживать конкретный принтер. А это означает, что если принтер изготовлен до появления таких устройств или если принтер новый, но внутренние карты он не поддерживает, то придется применить внешнее устройство сетевой печати.

Рис. 2. Принт-сервер на два принтера.
Рис. 3. Внешний и встраиваемый принт-серверы.

Кроме того, внутренняя плата обслуживает только один принтер. Внешние серверы печати способны обслуживать одновременно несколько принтеров, и таким образом удается сэкономить на дополнительных портах. Когда единое устройство работает со многими принтерами, это также сокращает потребности в конфигурировании и необходимые ресурсы. Например, для каждого из принтеров достаточно одного IP-адреса, в то время когда принтерам с внутренней платой придется каждому выделить по отдельному адресу.

Часто внутренние сетевые платы имеют ограничения по числу поддерживаемых сетевых протоколов и их одновременной поддержке: бывает, что нужный протокол не поддерживается или два протокола не могут работать одновременно.

Внешний сервер печати обеспечивает прозрачное, совместное использование сетевого принтера. Так же, как и сетевой компьютер с подключенным к нему принтером, внешний сервер печати обладает собственным сетевым подключением, а принтер (или принтеры) подключается непосредственно к серверу. В этом случае отпадает необходимость тратиться на покупку и обслуживание сравнительно дорогого ПК - вместо него используется недорогое, малогабаритное, простое в использовании устройство.

Преимущества внешних принт-серверов

Принт-серверы обычно рекомендуется устанавливать в средних и крупных сетях, где требуется удаленное управление печатающими устройствами. Особенно эффективно их применение в тех случаях, когда в сети есть много принтеров, размещенных на разных этажах и даже в разных зданиях, и необходимо предоставить администратору максимум возможностей для управления, а пользователю - максимум удобств для работы с ними.

Экономия средств

Для печати с компьютера или файлового сервера с подключенным принтером нужно иметь этот компьютер или сервер, а они достаточно дороги. Затраты существенно возрастают, если множество принтеров, нуждающихся в доступе к сети, распределены по всему офису. Даже самый простой компьютер существенно дороже, чем мощный многопротокольный сервер печати, причем последний поддерживает одновременно несколько принтеров. Кроме того, сервер печати позволяет сократить время, затрачиваемое на поддержку и сервис (обслуживание компьютера требует существенно больше времени).

Разгрузка основного процессора

Обработка заданий печати занимает много процессорного времени компьютера, к которому подключен принтер. Если при этом ПК выполняет другие задания или предоставляет файлы в общий доступ, печать способна существенно повлиять на его способность выполнять другие задачи. Производительность печати также оставляет желать лучшего, если компьютер одновременно выполняет несколько заданий, существенно нагружающих процессор.

Причина большой нагрузки на процессор заключается в так называемом механизме программного посимвольного ввода-вывода. Суть его в том, что, когда сервер отправляет принтеру задание на печать, для каждого символа инициируется процессорное прерывание. При этом не имеет значения, какой компьютер используется - устаревшая XT-шка или самая быстрая машина на базе Pentium 4. Требования к серверу существенно возрастают, если он обслуживает несколько принтеров.

В сервере печати вместо программного посимвольного ввода-вывода используется прямой доступ к памяти DMA (Direct Memory Access). В этом случае процессорное прерывание инициируется лишь для целых пакетов данных. Таким образом, сервер печати не только разгружает компьютер или файловый сервер, повышая эффективность выполнения ими других задач, но и позволяет добиться более быстрой сетевой печати.

Удобное размещение

При подключении принтеров к компьютеру или файловому серверу их местоположение выбирать не приходится. А поскольку серверы, например, обычно располагаются в безопасном, специально кондиционируемом помещении или поближе к администратору системы, они чаще всего недоступны большинству пользователей, которым приходится совершать дальние "прогулки", чтобы забрать отправленные на печать документы. Сетевые серверы печати, напротив, позволяют размещать принтеры в любом месте сети и именно там, где они больше всего нужны. Благодаря небольшому размеру такие устройства можно подключать непосредственно к принтеру или размещать в таких местах, где они никому не мешают.

Дополнительная обработка заданий

Часто в гетерогенной сетевой среде задания печати, созданные в различных ОС или сетях, требуют дополнительной обработки перед отправлением на тот или иной принтер. Например, во многих заданиях печати, созданных в UNIX, в конце строк требуется вставлять "возвраты каретки", в противном случае принтер печатает текст "лесенкой". Другое стандартное требование к предварительной обработке - печать титульного листа для каждого задания, чтобы пользователи могли найти свои документы в стопке выходного лотка принтера. Во многих случаях принтер требуется настраивать по-разному для различных пользователей.

Такая функция часто обеспечивается на серверах печати с помощью технологии виртуального принтера, позволяя существенно сэкономить на покупке дополнительных печатающих устройств. В этой технологии специальные виртуальные принтеры настраиваются непосредственно на сервере печати. Пользователи направляют свои задания на виртуальный принтер, и задания проходят предварительную обработку в соответствии с заранее определенными условиями. Например, один виртуальный принтер может использоваться для вставки знаков возврата каретки в заданиях от компьютеров под управлением UNIX, другой - для преобразования ASCII-заданий в формат PostScript для пользователей, приложения которых этот формат не поддерживают, третий - для расстановки приоритетов заданий пользователей, которым требуется обеспечить определенный уровень безопасности. Кроме того, все виртуальные принтеры можно настроить на печать титульного листа. Преимущество сервера печати в том, что все эти виртуальные принтеры располагаются на одном сервере и всех пользователей обслуживает один физический принтер.

Возможности управления

Сетевым администраторам жизненно важно знать, что происходит в сети. Когда печать поручена серверу, он самостоятельно генерирует сообщения о состоянии заданий печати, числе напечатанных страниц, а также уведомления о неполадках принтера, например, о его недоступности, защемлении бумаги или ее отсутствии. Эти сообщения направляются прямо сетевому администратору по электронной почте или регистрируются в системном журнале.

Кроме того, серверы печати часто поддерживают управление по протоколу SNMP, что дает возможность полностью управлять средствами стандартных SNMP-приложений - таких, как OpenView компании Hewlett-Packard, SunNet Manager от Sun или SNMPc компании Castle Rock.

Возможности принт-серверов

Серверы печати в настоящее время выпускают такие компании, как Axis Communications (http://www.axis.com), Digi International (http://www.digi.com), D-Link Systems (http://www.dlink.com), Hewlett-Packard (http://www.hp.com), Intel (http://www.intel.com), Lantronix (http://www.lantronix.com), Lexmark (http://www.lexmark.com), Microplex Systems (http://www.microplex.com), NetGear (http://www.netgear.com) и другие (рис. 4). По габаритам эти устройства немного больше обычной видеокассеты. Каждый из них имеет разъем для подключения источника питания, гнездо RJ-45 Ethernet 10/100 Мбит/с и несколько принтерных портов (параллельных и последовательных). Некоторые устройства имеют встроенные концентраторы. Обычно все серверы печати могут одновременно работать с текстовыми печатающими устройствами и PostScript-принтерами. Большинство представленных на рынке принтеров совместимы с этими серверами, но есть и такие, которые не работают с ними. Это недорогие печатающие устройства, например, HP DeskJet 700, 820 или 1000. Для выполнения большинства функций, связанных с растеризацией изображений, они используют средства ОС Windows 95/98 и функционируют только тогда, когда подключены непосредственно к ПК с одной из указанных ОС.

Рис. 4. Принт-сервер D-Link DP313.

Благодаря встроенным Web-серверам все серверы печати можно настраивать с помощью браузера. Новые устройства, как правило, поддерживают протоколы IPP (Internet Printing Protocol). Автоматическое присваивание IP-адресов и интуитивно-понятное именование принтеров с поддержкой DHCP и WINS/DNS упрощает их установку и настройку. Каждое из устройств может осуществлять тестовую печать или выводить статусную распечатку, содержащую информацию о его IP-адресе, активных протоколах, числе документов в очереди на печать, типах подсоединенных к нему принтеров и другие сведения. Некоторые принт-серверы оснащены специальной кнопкой проверки, при нажатии на которую на принтер выводится диагностическая распечатка со сведениями. В большинстве случаев сервер печати в состоянии сам определить тип подключенного принтера и необходимые сетевые протоколы. Автоматическое распознавание скорости и среды передачи данных устраняет необходимость в настройке этих параметров при установке.

Обычно в комплект поставки каждого принт-сервера входит CD-ROM с конфигурирующими и управляющими утилитами. Поскольку новые серверы печати имеют открытую архитектуру, их можно обновлять, загружая новое микропрограммное обеспечение, хранящееся во флэш-памяти. Это позволяет адаптировать принт-серверы (по крайней мере, в течение некоторого времени) к непрерывно происходящим техническим изменениям.

Чтобы сетевые серверы и клиентские ПК могли работать с сервером печати, их необходимо правильно сконфигурировать, установив на них драйверы новых сетевых принтеров. Существует два основных метода конфигурирования: первый предусматривает создание виртуального локального принтерного порта (на ПК или сервере) с помощью ПО, поставляемого производителем сервера печати, а второй - использование нового протокола IPP (если клиентская ОС его поддерживает). Некоторые серверы печати имеют специальные средства, с помощью которых создается инсталляционный диск для нового сетевого принтера, содержащий драйвер этого принтера, а также информацию об IP-адресе сервера печати и пароле доступа к этому принтеру. Установить драйвер принтера можно и другим способом - с помощью протокола IPP.

Ускорение печати

Принтер - это "узкое" место практически в любой конфигурации печати. Серверы печати способны обеспечить скорость, намного большую, чем обеспечивает стандартный параллельный порт компьютера, и в большинстве случаев поставляют данные быстрее, чем их способен обработать обычный принтер. Например, серверы печати Microplex оборудованы параллельными портами с производительностью более 200 тыс. символов в секунду. Стандартный параллельный порт компьютера обеспечивает передачу примерно 30 тыс. символов в секунду.

Здесь следует еще раз подчеркнуть, что принт-серверы поддерживают большинство известных печатающих устройств - от новейших лазерных до самых старых матричных принтеров. Кроме того, поддерживаются любые языки печати, такие как PostScript, PCL, HP-GL и другие. Серверу печати абсолютно все равно, какой тип данных через него проходит. Он просто прозрачно пересылает данные на подключенный принтер или принтеры. Единственное исключение - когда требуется особая обработка данных, например, преобразование из ASCII в PostScript. В этом случае сервер печати просматривает лишь начало данных, чтобы определить, требуется ли преобразование.

Вообще говоря, для оценки производительности печати необходимо знать "узкие" места этого процесса. Так, при подготовке задания для печати текстовый процессор затрачивает время для преобразования документа из собственного внутреннего формата в формат принтера, такой как PCL или PostScript. Процесс преобразования зависит от размера документа и производительности текстового процессора при выполнении этой операции; он может быть быстрым или занимать изрядное количество времени. Время преобразования также сильно зависит от производительности ПК. Время, необходимое для передачи задания от текстового процессора в очередь на печать, называется временем подкачки. Оно определяется такими факторами, как производительность прикладной программы при перемещении данных к порту принтера (или в очередь на печать), а также производительность сети при передаче данных для печати и постановке их в очередь. Время, когда задание для печати ждет очереди на печать, называется временем ожидания. Оно зависит от ряда факторов, включая количество заданий, стоящих перед ним, их размер, скорость работы сервера и способ его использования. Сервер печати периодически проверяет очередь на печать, если она вообще имеется, чтобы видеть, есть ли задания для печати. Если есть такая очередь, а принтер оперативно доступен и готов к приему, тогда сервер печати начнет перемещать задание из очереди на принтер. Этот процесс называется снятием подкачки или уменьшением очереди, а время, необходимое для перемещения всего задания для печати на принтер, именуется временем снятия подкачки. Факторы, регулирующие время снятия подкачки, - это скорость, с которой сервер печати может удалять данные из очереди на печать, и скорость, с которой он направляет эти данные на принтер. Другой ключевой фактор - скорость приема данных принтером.

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

Серверы печати обслуживают все задания на равноправных основаниях по принципу FIFO: первым вошел - первым вышел (First In - First Out), т. е. нет никаких предпочтений для отдельных компьютеров или сетей. У каждого порта ввода-вывода обычно имеется собственная очередь, которая обрабатывается независимо от очередей других портов. Таким образом, принт-сервер с четырьмя портами ввода-вывода (два параллельных и два последовательных) может поддерживать четыре очереди, каждая из которых обслуживает свой принтер. Порты поддерживают печать одновременно без риска смешивания или потери заданий.

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

Разграничение доступа

Если сервер печати не оснащен средствами безопасности, то вне зависимости от того, сколь много механизмов повышения безопасности скрыто в сетевой ОС, администратор сети получает открытую систему, где нет возможности предотвратить доступ пользователей, не имеющих достаточных прав. Возможность разграничения доступа к принтеру имеет значительные потенциальные преимущества. В частности, несанкционированное использование печатающего устройства приводит к увеличению затрат на сопровождение и расходные материалы. Если принтер печатает несанкционированные задания, то он недоступен срочным бизнес-проектам, имеющим жесткие сроки исполнения. Последствия слабого контроля использования принтеров могут быть более серьезными, если серверы печати обслуживают принтеры, печатающие чеки, счета к оплате и другие бухгалтерские документы. Во многих случаях разграничение доступа позволяет предотвратить серьезные негативные последствия, которые может повлечь за собой несанкционированная печать в учреждениях, работающих с конфиденциальными документами.

Во многих случаях администраторы сетей организуют централизованную очередь заданий на печать. Пользователи отправляют задания в централизованную очередь на файл-сервере, который затем пересылает эти задания на сервер печати, а тот, в свою очередь, пересылает задание на принтер. Благодаря такой дисциплине системные администраторы могут централизованно управлять всеми пользовательскими заданиями на печать. Это позволяет задействовать такие возможности сетевых ОС, как автоматическая загрузка драйвера принтера при соединении с очередью, при сохранении производительности и свободы местоположения серверов печати.

В некоторых ситуациях отправка заданий на печать в централизованную очередь или невозможна, или неэффективна. В качестве примера можно привести удаленный офис, оснащенный только рабочими станциями и соединенный со штаб-квартирой медленным каналом связи. Часто невозможно создать централизованную очередь печати либо из-за перегрузки файл-серверов, либо по другим причинам. В подобных ситуациях разумно заставить рабочие станции печатать непосредственно на серверы печати. Серверы печати поддерживают как совместный доступ, так и непосредственную печать.

Поскольку средства защиты сетевой ОС способны ограничить доступ только к очереди печати файл-сервера, то с помощью любого подключенного к сети компьютера можно отправить задание на печать непосредственно на сервер печати, минуя контроль сетевой ОС. Разумное решение в этом случае - оснастить средствами защиты сам сервер печати.

Одно из решений проблемы несанкционированного доступа - использование технологии парольной защиты Intel. Эта технология дополняет средства безопасности, которыми располагают большинство сетевых ОС. Проверка безопасности осуществляется всякий раз, когда пользователь пытается печатать непосредственно на сетевой принтер, минуя средства безопасности сетевой ОС. Например, с помощью серверов печати Intel NetportExpress 10 и 10/100 администраторы могут установить пароль доступа к любому подключенному принтеру. В среде с совместным использованием печати, например, когда пользователи посылают задания на печать в очередь на сервере Windows NT, администратор может настроить параметры NT-сервера так, чтобы тот пересылал задания на сервер печати с указанием пароля. Файл-сервер - единственный компьютер, которому необходимо знать этот пароль. Администратор управляет доступом к очереди печати с помощью обычных средств безопасности сетевой ОС. Следует также отметить, что в ситуации, когда рабочие станции печатают непосредственно на принтер, в сети не существует централизованной очереди заданий на печать и сетевая ОС не контролирует доступ к серверу печати. Принтером может воспользоваться кто угодно. Данная технология преодолевает это ограничение, подменяя собой средства безопасности сетевой ОС. Печатать документы на определенном принтере со своих рабочих станций могут только те пользователи, которые знают соответствующий пароль. Если рабочая станция указывает неверный пароль, то задание на печать попросту не выполняется, как если бы принтер вообще не был подключен к сети. Так, если администратор располагает тремя принтерами, подключенными к одному и тому же серверу печати, то любой из них (или сразу все) может быть снабжен уникальным паролем. Например, если к серверу печати подключены монохромный лазерный и цветной струйный принтеры, то доступ к лазерному принтеру можно разрешить всем, а доступ к цветному струйному принтеру ограничить паролем. Пароли принтеров можно использовать в системах UNIX, Linux, Windows NT, Novell и даже AS/400.

Сегодня для большинства новых устройств можно ограничить сетевой доступ к ним и к их отдельным принтерным портам. Такое ограничение может потребоваться, например, если в принтерах содержится специальная бумага (разного рода формы, бланки и др.) или если нужно обеспечить печать только через файловый сервер (работающий под управлением Linux, NetWare или Windows NT). Если сервер печати сконфигурирован для разрешения доступа только файловому серверу, то пользователи не смогут печатать в обход последнего, взаимодействуя с сервером печати напрямую. Серверы печати также имеют возможность ограничивать доступ к своим Web-интерфейсам посредством пароля.

Поддержка протоколов

В гетерогенных сетевых средах администраторам приходится поддерживать множество различных служб печати и протоколов. Принт-серверы дают возможность нескольким пользователям сети печатать на одном и том же принтере, используя при этом различные сетевые протоколы. Таким образом, это отличный способ уменьшить стоимость рабочего места. Пользователи могут использовать один и тот же принтер, даже если они работают на разных платформах. Современные серверы печати обычно поддерживают протоколы TCP/IP, IPX, DLC/LCC, AppleTalk/EtherTalk, NetBIOS/NetBEUI, LAT, благодаря чему их можно использовать даже в смешанных средах. Что касается протоколов печати, то среди них обычно фигурируют такие, как LPD, RSHD, FTPD, прямое подключение, PSERVER, RPRINTER, LPD, диспетчер печати и т. п.

С постоянным ростом компьютерных сетей заметно усложняется и процесс управления печатью в них. Решить эту проблему призваны именно принт-серверы. И чем более "умными" они будут, чем больше функций начнут брать на себя, тем легче станет администратору решать сетевые задачи, да и пользователи смогут работать гораздо эффективнее. За последние годы произошли коренные изменения в сетевой печати, и в обозримом будущем этому процессу перемен не видно конца. Компании хотят получить решения для удаленной печати масштаба предприятия, а сетевые администраторы заинтересованы в инструментах, которые упростили бы управление и обеспечили большую централизацию процессов печати.

Настройка сервера печати и автоматического развертывания принтеров групповой политикой June 14th, 2013

Следующим этапом создаются политики (ПУСТЫЕ) для развертывания принтеров в кабинетах и соответственно устанавливаются разрешения на применения политик только для группы пользователей кабинета.

6. Развертывание принтера в групповую политику.
Переходим в оснастку «Службы печати» -> «Принтеры» , выбираем последовательно принтеры относящиеся к конкретному кабинету, последовательно на каждом нажимаем правой кнопкой мыши и выбираем пункт «Развернуть с помощью групповой политики».
http://acisi.ucoz.ru/images/print_server/print_serv_17.jpg

В поле имя объекта групповой политики выбираем созданную в прошлом пункте политику для развертывания на кабинет.
Выбираем развертывание для группы пользователей и нажимаем «Добавить».

Развернутые принтеры соответственно автоматически добавляются в раздел «Развернутые принтеры».

После чего при входе пользователя в систему ему автоматически будут развернуты принтеры членом группы, которых он является.

7. Назначение прав на доступ к принтеру.
Чтобы избежать печати пользователей не на свой принтер, что является достаточно распространенной проблемой необходимо установить права для доступа к принтеру как на локальной рабочей станции, так и на сервере терминалов.

Можно посмотреть и установить параметры сервера печати, выбрав из меню Файл (File) папки Принтеры (Printers) команду Свойства сервера (Server Properties). С помощью диалогового окна Свойства сервера печати (Print Server Properties) можно:

  • Создать пользовательские формы, доступные для всех принтеров на сервере.
  • Изменить установки портов для всех портов на сервере.
  • Установить драйверы принтера для различных аппаратных платформ и операционных систем.
  • Выбрать новое расположение файла спулинга, установить регистрацию ошибок диспетчера очереди печати и задать опции уведомления для всех принтеров на сервере.

Конфигурирование портов сервера печати

Вкладка Порты диалогового окна Свойства: Сервер печати (Print Server Properties) позволяет менять некоторые из установок, которые доступны также на вкладке Порты в окне свойств принтера. На вкладке Порты окна свойств сервера можно добавлять, удалять и конфигурировать порты и типы портов. Однако, чтобы увеличить или уменьшить число принтеров в пуле принтеров или изменить порт, с которым соединен принтер, нужно перейти на вкладку Порты окна свойств принтера .

Создание пользовательских форм

Любой пользователь, имеющий для принтера разрешение Управление принтерами, может определить новую форму. Например, можно создать форму, которая использует формат бумаги Letter и нестандартные отступы для специальных бланков. Можно также создать несколько форм, имеющих один и тот же размер бумаги или одинаковые отступы в соответствии со специфическими потребностями пользователя. Например, можно создать формы, которые имеют уникальные имена, но общие размер бумаги и область печати, чтобы различать фирменные бланки разных отделов.

Новые определения форм добавляются в базу данных сервера печати и сохраняются в ней, а не на принтере. Формы назначаются конкретному устройству печати и лотку при помощи вкладки Параметры устройства диалогового окна Свойства принтера.