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

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

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

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

Сервер печати позволяет подключить принтер напрямую к сети, минуя компьютер. Многие современные принтеры оборудованы встроенными серверами печати, но если в вашей организации используются более старые модели принтеров, то можно приобрести автономный сервер печати.
У сервера печати три важных преимущества: во-первых, любой пользователь может печатать свои документы независимо от того, включены другие компьютеры или нет. Во-вторых, в беспроводной сети, где есть сервер печати, стационарный компьютер вообще не требуется. И в-третьих, если установить в сети сервер печати, а еще лучше - беспроводной сервер печати, то принтер можно будет поставить где угодно, не обязательно рядом с компьютером.
Проблема в том, что большинство серверов печати поставляются с программным обеспечением, которое необходимо устанавливать на всех компьютерах. Однако оно зачастую полно ошибок, из-за чего процесс печати начинает напоминать шаманство. Но есть и хорошие новости: от специального программного обеспечения можно отказаться и выполнить настройку вручную, сделав сетевой принтер более надежным, а печать стабильной. Выполните следующие шаги:
1. Сначала подключите сетевой принтер к сети. Если вы используете автономный сервер печати, то присоедините его к сети и подключите к нему свой принтер. Если у вас беспроводной сетевой принтер или сервер печати, возможно, вам придется временно присоединить их к компьютеру, чтобы ввести идентификатор SSID и настройки шифрования.
2. Определите текущий IP-адрес сервера печати. Это может быть либо статический адрес по умолчанию, указанный в документации, либо адрес, автоматически назначенный системой DHCP вашего маршрутизатора.
3. Откройте веб-обозреватель, введите в адресной строке IP-адрес сервера печати и нажмите Enter.
4. На странице настройки сервера печати выключите службу DHCP и укажите для устройства статический IP-адрес. Можно выбрать любой адрес в диапазоне вашей подсети, который в данный момент не используется на другом компьютере или устройстве. Для удобства лучше указать такое значение, которое вряд ли будет выбрано функцией DHCP маршрутизатора. Например, если компьютерам обычно присваиваются адреса 192.168.1.101 и 192.168.1.102, то укажите что-то далекое, скажем, 192.168.1.200. Введите желаемый адрес на странице настройки принтера и сохраните параметры. Подробную информацию о настройке принтера вы найдете в руководстве пользователя для устройства.
5. На Панели управления откройте страницу Устройства и принтеры и на Панели инструментов щелкните на кнопке Установка принтера.
6. На первой странице мастера установки принтера выберите Установить сетевой, беспроводной принтер или принтер Bluetooth.
7. Не ждите, пока Windows завершит поиск доступных принтеров, сразу же щелкните на ссылке Нужный принтер отсутствует в списке.
8. Ma следующей странице выберите Найти принтер по имени или TCP/IP-адресу и нажмите Далее.
9. В списке Тип устройства выберите Устройство TCP/IP.
10. Введите заданный на шаге 4 статический IP-адрес сервера печати в поле Имя или IP-адрес. Поле Порт будет заполнено автоматически. Закончив, нажмите Далее.
11. Если открылась страница Требуется дополнительная информация порта, это означает, что к принтеру невозможно подключиться или получить его параметры. В разделе Тип устройства выберите Стандартное, выберите пункт списка Обычная сетевая карта и нажмите Далее.
12. Windows попытается установить соединение с принтером, но, вероятно, вам понадобится указать производителя и модель устройства. Если в списке установленных драйверов ваш принтер отсутствует, то нажмите Установить с диска.
13. Выберите драйвер принтера и нажмите Далее.
14. В следующем окне нужно будет ввести имя принтера и указать параметры общего доступа. Так как вы настраиваете сетевой принтер, выберите вариант Нет общего доступа к данному принтеру.
15. Завершите работу мастера и выполните тестовую печать.
Следуя этим инструкциям, можно настроить практически любую модель сервера печати, однако вы наверняка заметите, что некоторые устройства не сохраняют указанные вами настройки. Очевидно, что на компьютере под управлением ОС Windows 7, которая для обеспечения надежной печати требует принтер с постоянным IP-адресом, мало пользы от устройства, не помнящего свой адрес. Зайдите на веб-сайт производителя принтера и загрузите обновление прошивки устройства, затем повторите попытку.

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

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

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

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

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

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

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

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



Настроить сервер печати для Windows Server можно следующим образом.

Выберите команду "Пуск " -> "Администрирование " -> "Управление данным сервером ".

В открывшемся окне нажмите кнопку "Добавить или удалить роль ", после чего нажмите кнопку "Далее " в открывшемся окне "Мастер настройки сервера ".

В списке "Роль сервера " выберите параметр "Сервер печати " и нажмите кнопку "Далее ".

В новом окне необходимо выбрать клиентскую операционную систему, для которой будут установлены логические принтеры и драйверы. Выберите переключатель "Все клиенты ". Щелкните на кнопке "Далее ".

В новом окне следует щелкнуть на кнопке "Далее ", после чего откроется окно "Мастер установки принтеров ". Эта программа установки используется для подключения локальных или сетевых принтеров к серверу на базе Windows Server. Щелкните в окне мастера кнопку "Далее ".

В следующем окне следует выбрать тип устанавливаемого принтера. При настройке сервера печати для отправки заданий непосредственно на принтер выберите переключатель "Локальный принтер " (принтер с собственным сетевым адаптером также считается локальным). Переключатель "Сетевой принтер, подключенный к другому компьютеру " следует выбрать при передаче заданий печати второму серверу печати. Например, с сервера печати регионального офиса можно передавать задания печати в центральном офисе. Щелкните кнопку "Далее ".

Если принтер, подключенный к серверу, не был обнаружен, откроется новое окно, в котором необходимо вручную выбрать локальный порт принтера. Если у принтера есть собственный сетевой адаптер, и вы отправляете задания для печати по сети, выберите тип порта в раскрывающемся меню "Создать новый порт ". Если тип порта неизвестен, рекомендуется выбирать параметр Standard TCP/IP Port .

При выборе параметра Standard TCP/IP запустится программа "Мастер добавления стандартного порта TCP/IP принтера ". С помощью этого мастера следует указать IP-адрес принтера и имя порта, к которому будет осуществляться подключение. При этом IP-адрес принтера обычно указываются в параметрах принтера системным администратором.

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

После установки принтера необходимо настроить доступ к нему конечных пользователей. Принтер для операционной системы является таким же логическим ресурсом, как файл или каталог, поэтому в процессе поиска принтера конечные пользователи могут просмотреть ресурсы сервера печати (при наличии соответствующего разрешения доступа). Кроме того, на клиентской системе можно настроить доступ к принтеру с помощью мастера "Установка принтера " ("Пуск "-> "Панель управления " -> "Принтеры и факсы ") или с помощью команды "net send ", используемой в командной строке Windows. Также принтер можно опубликовать в службе каталогов Active Directory , что пригодится при поиске нужного принтера в больших организациях, в которых работают тысячи сотрудников.

Для управления параметрами принтера в Windows Server нужно правой кнопкой мыши на значке принтера щелкнуть и выбрать команду "Свойства ". В новом окне можно настроить различные свойства принтера, включая разрешения печати, параметры доступа, порты и многое другое.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: