Подключение к сетевому принтеру или серверу печати. Что такое принт-сервер

  • 23.07.2019
  • 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. Добавляем пользователя в группу - и ему прилетает нужный принтер. Правда, это уже другая история, выходящая за рамки статьи.

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

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

Добрый день уважаемые читатели блога сегодня мы с вами разберем вопрос, как производится настройка сервера печати windows server 2012 R2. Мы с вами уже устанавливали сервер печати в Windows Server 2008 r2 и эта статья чем, то на нее похожа. Думаю для начинающих системных администраторов она окажется полезной в организации новой инфраструктуры и имеющей немного улучшенный функционал, все вопросы по данной теме я жду в комментариях, готов максимально развернуто на них ответить.

Что такое сервер печати

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

Сервер печати windows server 2012

Приступим к настройке, делать я это буду на контроллере домена так как данный функционал совсем не нагружает сервак, первым делом вам необходимо открыть Диспетчер сервера и в правом верхнем углу нажать Управление > Добавить роли и компоненты, в 2012 да и в 2008 r2, все ставилось через данные мастера.

У вас откроется мастер добавления ролей и компонентов, на первом окне можете ничего не читать, там одна вода, жмем далее.

Оставляем выбор на Установка ролей и компонентов, так как мы будем ставить на один сервак

Выбираем сервер для инсталляции.

ставим галку на против Слыжбы печати и документов и жмем далее.

Дополнительных компонентов ставить не нужно, так что этот шаг просто пропускаем.

На этом шаге мастер вам расскажет более подробно про сервер сетевой печати, если интересно, то почитайте.

Теперь у вас на выбор будет 4 галки

  • Сервер печати > ее выбирает, так как наша роль
  • Печать через интернет > тут как бы все понятно из названия
  • Сервер распределенного сканирования
  • Службы LPD > Для Linux платформ

Все жмем установить.

Процесс довольно таки быстрый.

Обратите внимание, что по завершению вас не попросят перезагружаться.

все роль установилась, открываем Средства в диспетчере сервера и далее Управление печатью.

Продолжаем делать наш сервер печати windows server 2012. В открывшейся оснастке mmc откройте Серверы печати > далее ваш > Принтеры. Как видите у вас только стандартный Microsoft XPS принтер. Логично, что вам нужно поставить все ваши сетевые принтеры. У меня в сети настроена пачка сетевых принтеров HP LaserJet 400 MFP M425dn

Открываем панель управления > Устройства и принтеры. Жмем вверху Добавление принтера.

В открывшемся окне, будет произведен поиск доступных принтеров в Active directory. если у вас ничего не нашло, то жмем Нужный принтер отсутствует в списке.

Теперь настройка сервера печати windows попросит вас добавить локальный или сетевой принтер от имени администратора.

Выбираем добавить принтер по его TCP/IP адресу или имени. Советую всегда использовать dns имена и не привязываться к ip адресам.

  • Тип устройства > Устройство TCP / IP
  • Имя или Ip адрес > DNS имя
  • Имя порта > что угодно понятное вам, у меня это расположение в офисе

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

И зададим имя, по которому его смогут искать.

Указываем есть ли до него общий доступ или нет.

Вот так вот выглядит мой список,

Откройте теперь проводник и введите \\имя вашего сервера и вы получите список всех принтеров что на нем есть.

Щелкаем по любому из них двойным кликом и начнется установка.

Все как видите у меня появился нужный мне сетевой принтер.

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

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

Сегодня принтеры, непосредственно подключенные к сети, стали традиционным офисным оборудованием. Они обеспечивают быструю печать и простую установку независимо от местоположения, что так важно администраторам сети. Однако в организациях с локальной сетью малого и среднего масштаба самым распространенным вариантом совместной сетевой печати остается персональный принтер, подключенный к одному из ПК (рис. 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, диспетчер печати и т. п.

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

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

Что такое принт-сервер?

Сервер печати представляет собой небольшое сетевое устройство стоимостью от $40, к которому может подключаться один или несколько (в зависимости от типа устройства) принтеров. Принт-серверы бывают двух типов: внешние и внутренние. Первые могут работать с любыми принтерами, вне зависимости от производителя. Внутренние - только с принтерами разработчика сервера печати. В любом случае устройство является "прозрачным" для ОС и требует лишь корректной настройки его параметров для используемых в сети транспортных протоколов.

Различные модели серверов печати отличаются в основном количеством и типом портов для подключения к ним принтеров, скоростью работы в сети (10 или 100 Mbps), размерами, а также спектром поддерживаемых сетевых протоколов и, как следствие, способностью работать в "многооперационных" сетях (т. е. локальных сетях, в которых используются ПК под управлением ОС различных типов).

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

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

10.01.2012 Джон Сэвилл

Учитывая мобильность современных офисных сотрудников и огромное количество устройств, которыми они пользуются, сейчас как никогда важно, чтобы возможности печати шли в ногу со временем. К тому же пользователям и организациям необходимы механизмы для безошибочной и стабильной работы с устройствами печати. Системы Windows Server 2008 R2 и Windows 7 предоставляют несколько функций, которые меняют подход к работе с устройствами печати в целом

В то время как мы движемся в «мир без бумаги», в котором почти все наши данные будут храниться в электронном виде, появление статьи о новых возможностях печати в системах Windows Server 2008 R2 и Windows 7 может показаться странным - как если бы я написал что-нибудь на тему «Интернет - это нечто важное» или «Станут ли планшетные компьютеры популярны?». Однако, если вы спросите человека, сидящего рядом с принтером в вашем офисе, стали ли люди печатать меньше, скорее всего, он ответит отрицательно.

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

Некоторые функции клиентской системы помогают значительно упростить работу конечного пользователя. Два наиболее заметных улучшения адресованы пользователям мобильных устройств и затрагивают механизмы доступа к компьютерам из различных мест, в том числе функции удаленной печати и выбора принтера «по умолчанию».

Печать на удаленном компьютере с Windows 7. Печатать данные из удаленного сеанса через протокол удаленного рабочего стола RDP при использовании традиционных служб Terminal Services было непросто. На каждом сервере терминалов приходилось устанавливать все драйверы принтеров, которыми могли бы пользоваться подключающиеся клиентские системы, чтобы локальные принтеры пользователей могли быть перенаправлены в удаленную сессию, а данные можно было корректно обработать на сервере терминалов и затем отправить клиенту для печати на локальном устройстве. Слишком часто драйверы для принтера отсутствовали или были неверной версии, что приводило к невозможности печати (это в лучшем случае, а в худшем уничтожался маленький перуанский тропический лес, пока печатались страница за страницей со случайными символами).

Платформа Server 2008 решает данную проблему с помощью механизма Terminal Services Easy Print. Эта новая модель печати «без драйверов» использует файлы Microsoft XML Paper Specification (XPS), которые по аналогии с файлами PDF содержат и данные, и форматирование. В отличие от сервера терминалов, который выполнял преобразование данных в специальный формат для печати, служба TS Easy Print создает универсальный документ XPS. Этот документ отправляется по протоколу RDP на устройство клиента, что позволяет ему выполнять на основе полученного файла XPS преобразование данных для принтера, используя драйверы, установленные локально. Если пользователь в удаленной сессии посмотрит свойства принтера, подключение RDP перехватит этот запрос и покажет свойства локального принтера, а затем отправит любые параметры форматирования обратно в удаленный сеанс. Таким образом, возможность настройки драйвера локального принтера не будет утеряна, даже если данный драйвер не установлен на сервере терминалов.

Хотя печать «без драйверов» - это значительный шаг вперед для механизма удаленных сеансов на основе Terminal Services, система Windows Vista не включала эту функцию. Когда компания Microsoft выпустила инструментарий для Virtual Desktop Infrastructure (VDI), а подход с использованием удаленных сеансов для подключения к виртуальным операционным системам получил широкое распространение, возможность применения функций печати при подключении к клиентским системам через протокол RDP стала обеспечивать огромные преимущества. Системы Windows 7 Enterprise и Windows 7 Ultimate поддерживают функцию Remote Desktop Easy Print. Служба Terminal Services в системе Server 2008 R2 была переименована в Remote Desktop Services (RDS), и с тех пор для механизма печати используется название Remote Desktop Easy Print, вместо Terminal Services Easy Print.

Функциональные возможности службы Easy Print больше не зависят от того, установлен ли пакет. NET Framework на устройстве клиента. Теперь преобразование XPS-в-GDI (формат принтера) производится непосредственно операционной системой. Используя функцию Easy Print при подключении к удаленной системе версии Windows 7 Enterprise или Ultimate и включив переадресацию принтера, можно увидеть принтер, установленный «по умолчанию», а также все доступные принтеры. Если вы посмотрите на параметр Model в настройках принтера «по умолчанию», то увидите, что он имеет значение Remote Desktop Easy Print (экран 1). Если выбрать пункт Printing Preferences в контекстном меню, вы увидите дополнительные настройки печати для локальной операционной системы. При работе с дополнительными свойствами принтера диалоговое окно, содержащее значения свойств, на самом деле перенаправляется в локальную клиентскую систему, в которой установлен полностью функциональный драйвер для принтера, ведь дополнительные настройки у каждого драйвера свои. В диалоговом окне, показанном на экране 2, видно, что свойства были перенаправлены. Так как механизм Easy Print является функцией протокола RDP 6.1, клиентские системы Vista SP1 и Windows SP3, в которых установлены приложение Remote Desktop Connection Client 6.1 или его более новые версии, а также пакет. NET Framework, могут пользоваться возможностями Easy Print при подключении к операционным системам Windows 7 Enterprise или Ultimate через протокол RDP.

Экран 1. Просмотр свойств принтера

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

Каким принтером пользоваться. Easy Print - удивительная технология, позволяющая предоставить локальные принтеры удаленным системам, не беспокоясь о наличии драйверов. Следующей задачей для мобильных сотрудников является выбор принтера, которым они будут пользоваться. Я беру с собой ноутбук, перемещаясь между несколькими офисными зданиями, а также пользуюсь им дома. Много раз, находясь дома, я просто нажимал кнопку Print, не указывая принтер для печати, и соответственно по ошибке посылал личный документ на рабочий принтер. Из-за этого на следующий день я вставал раньше обычного, чтобы успеть забрать свой документ до того, как это сделает кто-нибудь из коллег. Поэтому необходимо, чтобы принтер «по умолчанию» выбирался на основании текущего местоположения.

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

Изначально подходы к решению проблемы автоматического выбора принтера основывались на сценариях регистрации в системе, которые проверяли свойства системы, такие как IP-адрес, и затем добавляли определенные принтеры, обслуживаемые через сценарии. Реализация данного подхода в больших средах представляла собой трудную задачу. Первое по-настоящему крупное достижение в этой области связано с выпуском консоли Print Management Console (PMC) для системы Windows Server 2003 R2. Помимо создания централизованного пункта управления для серверов печати Windows и возможности автоматического определения принтеров, консоль PMC также предоставляла механизмы установки принтеров, использующие наборы опубликованных принтеров, указанные в объектах Group Policy Objects (GPO), и исполняемый файл PushPrinterConnections.exe. Этот исполняемый файл добавлялся в сценарий регистрации пользователя в системе или в сценарий запуска компьютера, проверял объекты GPO на наличие принтеров и настраивал найденные принтеры на компьютере. Так как объекты GPO могут быть связаны с доменом, организационным подразделением (UO) или сайтом, решение обеспечивало гибкость при выборе принтера. Файл PushPrinterConnections.exe был необходим, так как для элементов объекта GPO, отвечающих за настройку принтера, отсутствовало клиентское расширение CSE.

Система Server 2008 подняла механизмы развертывания принтеров на новый уровень с помощью клиентских расширений CSE для механизмов консоли PMC. С появлением этих расширений отпала необходимость в файле PushPrinterConnections.exe. Настройка нескольких объектов GPO на уровне сайта обеспечивает плавное переключение между принтерами, когда пользователи перемещаются, при этом принтер «по умолчанию» настраивается автоматически.

Функция Deployed Printers консоли PMC весьма полезна, однако технология Group Policy Preferences в системе Server 2008 предоставляет еще более гибкий механизм назначения принтеров пользователям, из-за чего многие организации отказываются от использования технологии Deployed Printers. В отличие от механизма групповой политики Group Policy, который задает политику для клиентской системы и запрещает любые изменения в ней, технология предпочтений групповой политики Group Policy Preferences позволяет создавать конфигурации компьютера, которые могут быть изменены конечными пользователями. Эта технология позволяет создавать начальную конфигурацию, которая не является окончательной. С помощью механизмов Group Policy Preferences мы можем периодически переназначать параметры предпочтения, перезаписывая любые изменения, которые внес пользователь, либо можем установить параметры предпочтения в начальное состояние и забыть о них, так что пользователь сможет делать с ними все, что угодно.

Чтобы настроить предпочтения Group Policy Preferences для принтеров на уровне пользователя, необходимо открыть объект GPO и зайти в раздел\User Configuration\Preferences\Control Panel Settings\Printers. Также можно при необходимости настраивать этот параметр на уровне компьютера. Чтобы добавить новый принтер, щелкните правой кнопкой и выберите пункт New, а затем укажите тип принтера. Как показано на экране 3, принтер может быть общим, подключенным по протоколу TCP/IP или локальным.

Если выбрать добавление общего принтера, вам будет предложено найти нужный принтер в каталоге Active Directory (AD) - необходимым условием является публикация принтеров в AD, которая легко настраивается через консоль PMC. Также можно указать, является ли это устройство принтером «по умолчанию» и будет ли оно оставаться таковым в случае подключения локального принтера (экран 4).


Экран 4. Настройка общего принтера

Так как предпочтения Group Policy Preferences являются частью объектов GPO, мы можем связывать их с сайтом, подразделением или доменом. Если необходимо устанавливать принтеры на основе расположения, можно связать объект GPO с сайтом, и в момент, когда клиентские системы обновят свои политики, в них будут добавлены принтеры, подходящие для данного местоположения пользователя. Однако с помощью предпочтений Group Policy Preferences мы может пойти еще дальше.

Закладка General в окне Shared Printer Properties позволяет выбрать общий принтер и принтер, заданный по умолчанию. Закладка Common, как можно понять по названию, является общей для всех конфигураций Group Policy Preferences, и к тому же открывает доступ к механизму указания принтера, использующему возможности детализации на уровне элемента, обеспечиваемые технологией Group Policy Preferences. Перейдите на закладку Common для нового принтера в Group Policy Preferences, затем выберите пункт Item-level targeting и нажмите кнопку Targeting, чтобы открыть новый редактор Targeting Editor, который, как показано на экране 5, позволяет создавать очень подробные правила, определяющие, когда вступает в силу соответствующее предпочтение.


Экран 5. Group Policy Preferences открывают практически безграничные возможности

Примечательно, что указание применяется только к определенному параметру предпочтений (то есть только к принтеру, а не ко всему объекту GPO). Такой подход позволяет в одном объекте GPO определить несколько принтеров, и каждый будет выбран по-своему. Посмотрите на набор критериев указания, приведенный на экране 5: вы заметите, насколько гибким может быть механизм выбора. Можно устанавливать принтеры на системы, входящие в определенный диапазон IP-адресов. Данный критерий, по сути, аналогичен выбору сайта AD, но позволяет сделать более подробную выборку, чем при использовании конфигураций сайта. Можно назначать принтеры на основе членства в группе, что в случае с обычными объектами GPO представляет собой трудоемкий процесс. Можно указывать принтеры с учетом времени суток, типа компьютера или типа сетевого соединения - у нас большая свобода действий. Если вы еще не пробовали поработать с Group Policy Preferences, советую это сделать. Если у вас используется много пользовательских сценариев, то с помощью Group Policy Preferences вы сможете упразднить большинство из них за ненадобностью.

В корпоративной среде настроить принтер «по умолчанию» с помощью передовых административных средств планирования и подстройки довольно просто. Но как поступить, если вы подключаетесь к множеству персональных сетей или если пользователи сами хотят управлять своими принтерами «по умолчанию» в зависимости от местоположения? В Windows 7 добавлена новая функция - печать с учетом сетевого расположения, - которая использует службу сведений о подключенных сетях, появившуюся в системах Server 2008 и Vista. Основываясь на различных сетевых параметрах (например, наличии беспроводных сетей, доступности контроллеров домена) мы можем назначить различные сети, которые будем использовать в настройках Group Policy, в параметрах межсетевых экранов и в других механизмах систем Server 2008 и Vista. Назначенные сети можно задействовать в системе Windows 7 и с помощью функции печати с учетом сетевого расположения настраивать для них по умолчанию различные принтеры.

Процесс настройки печати с учетом сетевого расположения довольно прост. Выбираем пункт Devices and Printers в меню Start, потом выбираем действие Manage default printers, чтобы открыть диалоговое окно, показанное на экране 6. Затем можно выбрать вариант, позволяющий всегда использовать один и тот же принтер по умолчанию, что, очевидно, приведет к невозможности печати с учетом сетевого расположения, либо вариант, позволяющий менять принтер, заданный по умолчанию, - в этом случае можно задать принтер по умолчанию для каждой известной сети. Когда вы подключитесь к новой неизвестной сети, текущий принтер, заданный по умолчанию, автоматически станет принтером по умолчанию для этой сети. Впрочем, данный параметр можно изменить.

Если вы подключитесь к нескольким сетям одновременно (например, к проводной сети и к беспроводной), то принтер, заданный «по умолчанию» для управляемой проводной сети, будет иметь приоритет над беспроводной сетью, которую сохранил пользователь. Более того, сохраненная беспроводная сеть будет иметь приоритет над неуправляемой проводной сетью. Если вы не можете обнаружить действие Manage default printers на своем компьютере или сервере, то это потому, что данный механизм доступен только на мобильных компьютерах (то есть ноутбуках) с установленной системой версии Windows 7 Home Premium или выше и отсутствует в любой серверной версии Windows.

Возможности администратора

Так как печать - процесс, инициируемый пользователем, неудивительно, что две наиболее интересные функции, Easy Print и функция печати с учетом сетевого расположения, использующая Group Policy Preferences, ориентированы на пользователя. В системах Server 2008 R2 и Windows 7 также усовершенствованы механизмы администрирования с точки зрения управления, что позволяет сократить объем работы подразделения ИТ.

Наиболее значимое изменение, касающееся служб печати, в системе Server 2008 R2 заключается в том, что печать теперь является частью серверной роли Print and Document Services. Внутри этой роли новая служба Distributed Scan Server обеспечивает возможность централизованного управления сетевыми сканерами с поддержкой технологии Web Services on Devices (WSD) и контроля по аналогии с тем, как принтеры управляются службами печати. В этой статье речь идет о печати, а не о сканировании, поэтому я пока оставлю тему возможностей роли Distributed Scan Server. Однако, если у вас в компании используется множество сканеров, роль Distributed Scan Server безусловно будет полезна для вашего окружения.

Изоляция драйвера для принтера. Я считаю, что главным улучшением в производительности и в обеспечении поддержки механизмов печати в системе Server 2008 R2 стала новая возможность изоляции драйвера для принтера («песочница»). До появления системы Server 2008 R2 компоненты драйвера печати загружались в том же процессе, что и очередь печати принтера. Часто в работе драйверов происходили сбои, что приводило к разрушению всей очереди печати, и при этом останавливалась вся служба печати для всех пользователей и принтеров на сервере. Изоляция драйвера для принтера позволяет запускать компоненты драйвера печати в отдельном от очереди печати процессе, и это означает, что сбой в работе драйвера больше не разрушит очередь печати и никак не отразится на других принтерах системы. Мы можем пойти дальше и настроить особые драйверы печати, которые будут запускаться в собственных изолированных процессах, что весьма полезно, если у нас есть новые драйверы или драйверы с известными ошибками. Эти драйверы, запущенные в собственных процессах, могут остановить работу своих принтеров, - но не остальных.

Настройка изоляции драйвера для принтера осуществляется не средствами принтера, а средствами драйвера. Для этого нужно запустить консоль PMC, перейти к узлу Print Servers - - Drivers, щелкнуть правой кнопкой мыши по драйверу и выбрать режим изоляции, как показано на экране 7. Можно выбрать одно из следующих значений.

  • None - загружает компоненты драйвера печати в процесс очереди печати, эмулирует поведение систем с версией ниже Server 2008 R2.
  • Shared - загружает множество драйверов в отдельный процесс, защищая очередь печати от сбоев в работе драйвера. Сбой в работе драйвера в общем процессе повлияет на работу остальных драйверов. Используйте этот режим только для известных, корректно работающих драйверов.
  • Isolated - загружает драйвер в собственный процесс, защищая очередь печати и другие драйверы от сбоя изолированного драйвера. Используйте это значение для неизвестных или проблемных драйверов.

Хотя изоляция драйвера для принтера является основным нововведением в системах Server 2008 R2 и Windows 7, повышающим надежность, данные системы обеспечивают и улучшение производительности, в том числе содержат изменения в механизме очереди печати как на серверной, так и на клиентской стороне, позволяющие сократить время регистрации в системе и уменьшить время запаздывания со стороны сервера при работе с уведомлениями. Уменьшение частоты оповещений печати заставляет очередь быстрее реагировать на изменения и повышает эффективность ее обработки.

Помощь в администрировании. Управление печатью начинается с консоли PMC. Улучшения в PMC, представленные в системах Server 2008 R2 и Windows 7 и позволяющие получить больше информации в обзорах Printers and Drivers, относятся к двум основным группам функций (помимо улучшений в пользовательском интерфейсе).

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

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

Другим важным дополнением является возможность создавать отфильтрованные обзоры в консоли PMC на основе информации о принтере и драйвере. Эта мощная функция позволяет администраторам с помощью узла Custom Filters консоли PMC создавать множество обзоров, позволяющих анализировать огромное количество параметров принтеров и драйверов. Такие параметры, как количество заданий в очереди, статус и местоположение, можно использовать для создания обзоров, которые позволят администраторам быстро просматривать информацию об устройствах, принадлежащих к различным группам и расположенных в разных местах (например, получить список устройств, работающих в определенном режиме, или список очередей, количество элементов в которых выше определенного значения). На экране 9 показаны параметры настройки фильтрации для принтера и для драйвера. И, как вы могли заметить, для каждого фильтра можно заполнить несколько полей, которые задают определенные условия и значения, при которых эти условия будут считаться выполненными.

Печать без проблем

Можно не признавать важность печати, но эта функция до сих пор имеет большое значение для организаций. Системы Server 2008 R2 и Windows 7 предоставляют новые возможности, которые позволяют удовлетворять потребности мобильных пользователей. Список нововведений включает различные технологии, которыми пользователи могут воспользоваться для подключения к службам и получения доступа к средствам печати. Даже с ростом требований, предъявляемых организациями к механизмам печати, доступ к устройствам печати должен быть непрерывным.

Джон Сэвилл ([email protected]) - директор по технической инфраструктуре компании Geniant, имеет сертификаты CISSP, Security and Messaging MCSE для Windows Server 2003 и звание MVP