Отказоустойчивый сервер печати на базе windows

Настоящий админ может спать спокойно лишь тогда, когда у него всё бэкапится, мониторится и дублируется. Или когда он работает в хорошей команде, где всегда можн...


Настоящий админ может спать спокойно лишь тогда, когда у него всё бэкапится, мониторится и дублируется.

Или когда он работает в хорошей команде, где всегда можно свалить вину на другого.

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

Допускаю, что какие-то черты я незаслуженно обошел вниманием. Возможно, в Windows 10/2016 она стала вести себя иначе. Если есть информация, прошу поделиться.

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

Предполагается, что у вас уже развернута 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 HKLMSYSTEMCurrentControlSetControlPrint /v DnsOnWire /t REG_DWORD /d 1
После применения команды нужно перезапустить службу Диспетчер печати.
Рекомендую выделить для принт-серверов отдельный OU и раздавать эту настройку с помощью GPP.

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

клик

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

клик

клик

Это имя должны использовать клиентские машины для подключения к принт-серверу. Т.е. клиент будет подключаться к адресам \printprinter01, \printprinter02 и т.д.
Чем меньше значение 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:ScriptsPrinters.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 (например, \printprinter01), и пробуем распечатать на нем что-нибудь.

Для этой цели лучше всего подойдет фраза “Превед, я бумажко”, набранная жирным шрифтом 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:WindowsSystem32SpoolToolsPrintBrm.exe'

#Основной и резервный серверы
$SourceServer = 'prn-srv01'
$DestServer = 'prn-srv02'

#Файл, куда выгружаем настройки. Путь не должен содержать пробелы, т.к. утилита PrintBrm не понимает кавычки в пути файла
$ConfigFilePath = 'C:Scriptsprn-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:WindowsSystem32WindowsPowerShellv1.0powershell.exe
В качестве аргументов задаем путь к скрипту со следующими параметрами:
C:ScriptsPrintSync.ps1 -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass

клик

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

всё было сделано зря и жизнь не удалась

сбросьте его с помощью оснастки ADUC или другим удобным способом

и укажите его уже в поле описания, чтоб было спокойнее

.

Примечание

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

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

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

И если их слишком много, то скорее чистим журнал, чтоб глаза не мозолили.

Мне попадались с кодами 20, 22, 80 и 81. Например,

такая

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

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

Под стук топоров и скрежет вил баррикадируем дверь в свой кабинет и отключаем телефон.

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

клик

Через некоторое время (что вы там ставили в TTL?)

угрожающие вопли стихнут,

клиентские машины переключатся на prn-srv02

и дверь с телефоном можно будет разблокировать

.

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

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

Что в итоге?

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

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

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

Вы ведь следуете рекомендациям Microsoft?

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

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

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

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

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

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

Каким образом у вас организовано резервирование сервера печати?


7.77%
виртуализация/кластеризация средствами Microsoft
8


8.74%
виртуализация/кластеризация сторонними продуктами
9


2.91%
репликация средствами Microsoft
3


0.97%
репликация сторонними продуктами
1


14.56%
мне достаточно бэкапа
15


29.13%
не резервирую никак
30


33.01%
не использую принт-сервер
34


2.91%
другое (указать в комментариях)
3

Проголосовали 103 пользователя.

Воздержались 30 пользователей.

Отказоустойчивый сервер печати на базе Windows - 1
Настоящий админ может спать спокойно лишь тогда, когда у него всё бэкапится, мониторится и дублируется. Или когда он работает в хорошей команде, где всегда можно свалить вину на другого.
Так получилось, что я в своей работе использую в основном продукты 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 принтеров принт-сервера. Другими словами, если вы разрешили печатать на принтере printserverprinter1 только сотрудникам, входящим в AD-группу Бухгалтерия, то это ограничение будет учтено импорте/экспорте. Или не будет, если поставить ключ -NOACL. При этом ACL самого сервера печати не обрабатывается независимо от ключа.
  • Капризна. На момент импорта параметров из файла на целевом сервере должен быть хотя бы один расшаренный принтер, иначе получите ошибку.
  • Нежна. Теряется, видя пробелы в пути файла. При виде кавычек, обрамляющих такой путь, огорчается и выдает ошибку 0x8007007b.
  • Скромна. Если при попытке экспорта настроек указанный файл уже существует, перезаписать его не может, спросить стесняется и также завершается с ошибкой.
  • Таинственна. Всегда возвращает exit-код, равный 0. Получается, идеальная программа.
  • Склонна к раздумьям. Может подзависнуть на стадии 100% минут на 5, а иногда и больше. Но потом одумывается и завершает работу (если, конечно, у вас хватит терпения не нажать Ctrl+C).
  • Внезапна и противоречива. Может устраивать вот такие сюрпризы.
  • Умна. Может переназначать исходные драйверы на другие. Например, с помощью XML-файла можно указать, что все драйверы HP Universal Printing PCL 5 в сохраненном файле на целевом сервере надо переназначить на HP Universal Printing PCL 6. На практике не использовал, но для кого-то может пригодиться.
  • Своенравна. Использовать ее для переноса настроек между доменами без доверия у меня не получилось, даже с ключом -NOACL. Либо не умеет в принципе, либо моя магия недостаточно сильна.
  • Познакомиться поближе можно тут и здесь, а для тех отважных, кто не стесняется спросить напрямую, есть ключ /?

Допускаю, что какие-то черты я незаслуженно обошел вниманием. Возможно, в Windows 10/2016 она стала вести себя иначе. Если есть информация, прошу поделиться.

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

Предполагается, что у вас уже развернута 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 HKLMSYSTEMCurrentControlSetControlPrint /v DnsOnWire /t REG_DWORD /d 1
После применения команды нужно перезапустить службу Диспетчер печати.
Рекомендую выделить для принт-серверов отдельный OU и раздавать эту настройку с помощью GPP.

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

клик

Отказоустойчивый сервер печати на базе Windows - 2

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

клик

Отказоустойчивый сервер печати на базе Windows - 3

клик

Отказоустойчивый сервер печати на базе Windows - 4

Это имя должны использовать клиентские машины для подключения к принт-серверу. Т.е. клиент будет подключаться к адресам printprinter01, printprinter02 и т.д.
Чем меньше значение 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) с неограниченным сроком действия пароля:

клик

Отказоустойчивый сервер печати на базе Windows - 5

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

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

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

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

клик

Отказоустойчивый сервер печати на базе Windows - 6

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

клик

Отказоустойчивый сервер печати на базе Windows - 7

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

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

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

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

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

Отказоустойчивый сервер печати на базе Windows - 8

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

Отказоустойчивый сервер печати на базе Windows - 9

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

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

клик

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

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

CreatePrintersFromCsv.ps1

#Откуда будем загружать данные
$InputFile = 'C:ScriptsPrinters.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 минуты вместо нескольких секунд)

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

клик

Отказоустойчивый сервер печати на базе Windows - 11

Чтобы убедиться, что на этом этапе всё работает, добавляем на любую из клиентских машин общий принтер с основного принт-сервера, используя ранее созданный CNAME (например, printprinter01), и пробуем распечатать на нем что-нибудь. Для этой цели лучше всего подойдет фраза “Превед, я бумажко”, набранная жирным шрифтом 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:WindowsSystem32SpoolToolsPrintBrm.exe'

#Основной и резервный серверы
$SourceServer = 'prn-srv01'
$DestServer = 'prn-srv02'

#Файл, куда выгружаем настройки. Путь не должен содержать пробелы, т.к. утилита PrintBrm не понимает кавычки в пути файла
$ConfigFilePath = 'C:Scriptsprn-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 с наивысшими правами:

клик

Отказоустойчивый сервер печати на базе Windows - 12

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

клик

Отказоустойчивый сервер печати на базе Windows - 13

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

клик

Отказоустойчивый сервер печати на базе Windows - 14

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

Примечание

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

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

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

Мне попадались с кодами 20, 22, 80 и 81. Например,

такая

Отказоустойчивый сервер печати на базе Windows - 15

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

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

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

клик

Отказоустойчивый сервер печати на базе Windows - 16

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

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

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

Что в итоге?

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

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

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

Вы ведь следуете рекомендациям Microsoft?

Отказоустойчивый сервер печати на базе Windows - 17

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

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

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

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

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

Автор: perlestius

Источник

Содержание

  1. Отказоустойчивый сервер печати на базе Windows
  2. Немного теории
  3. Before you begin, или что нужно знать о PrintBrm
  4. Подготовка среды
  5. Настраиваем первый сервер
  6. Настраиваем второй сервер
  7. Переключаемся на резерв
  8. Возвращаемся обратно
  9. Что в итоге?
  10. Использование встроенного принт-сервера домашнего маршрутизатора.
  11. Настройка Принт Сервера по WiFi с Компьютера или Ноутбука Windows 10
  12. Что такое беспроводной принт сервер USB?
  13. Как подключить принт сервер через USB?

Отказоустойчивый сервер печати на базе Windows

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

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

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

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

Допускаю, что какие-то черты я незаслуженно обошел вниманием. Возможно, в Windows 10/2016 она стала вести себя иначе. Если есть информация, прошу поделиться.

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

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

Будем исходить из того, что все принтеры сетевые и доступны для печати с основного и резервного принт-серверов. Пусть эти серверы называются 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 HKLMSYSTEMCurrentControlSetControlPrint /v DnsOnWire /t REG_DWORD /d 1
После применения команды нужно перезапустить службу Диспетчер печати.
Рекомендую выделить для принт-серверов отдельный OU и раздавать эту настройку с помощью GPP.

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

image loader

image loader

image loader

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

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

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

image loader

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

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

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

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

image loader

image loader

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

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

image loader

image loader

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

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

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

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

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

image loader

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

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

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

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

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

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

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

image loader

image loader

image loader

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

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

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

Мне попадались с кодами 20, 22, 80 и 81. Например,

image loader

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

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

image loader

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

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

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

Что в итоге?

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

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

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

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

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

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

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

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

Источник

Использование встроенного принт-сервера домашнего маршрутизатора.

q93 23da12d84e2432f3427a78551b6056ec19fdd0c7d63325ad07219dca1495c3d2

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

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

В качестве примера я буду использовать имеющееся у меня оборудование: популярный современный маршрутизатор компании D-Link DIR-825/AC/G1A, старенький лазерный принтер Lexmark E232, смартфон на ОС Андроид Lenovo A2010 и ноутбук HP.

1. Настройка маршрутизатора.

В браузере на ноутбуке открываем страницу «Принт-сервер» WEB-интерфейса маршрутизатора и нажимаем переключатель «Включить принт-сервер».

q93 7c1a5de3e17df2c13b0d855984dc3133f2f14d2af5a80e094738d18f8dc2880b

Сохраняем настройки, нажимая кнопку «Применить».

q93 77b131b6efb1196f90361d0d8e7574ab8eb5ea8248fc7c96e688b3389fe784fe

Наблюдаем появление строки статуса принтера.

q93 8975020b58efe1254779896afe6cb528193b28518d089de9c45f82b7d42829f6

Подключаем принтер к USB порту маршрутизатора и включаем питание принтера. Дожидаемся изменения статуса принтера на «Подключён».

q93 a6755b2e0f803be0e26c178b1c8d2a52206a831b373e6842aef0b6ec24cc906a

На этом настройка маршрутизатора завершена.

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

2. Настройка печати с ноутбука.

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

q93 15014c9cc61ded7c84986ab8043b67fcf8a236c101816b294174170c655a7560

В открывшемся окне выбираем пункт «Добавить сетевой, беспроводной или Bluetooth-принтер».

q93 5cbb93a7029a5f2f7846a1f4020a34a82a9e853e0e09ebf324d9be9b9d218965

Компьютер попытается найти и отобразить все доступные сетевые принтеры, не дожидаясь окончания поиска, нажимаем пункт «Нужный принтер отсутствует в списке».

q93 4e089cd1166685ea855dee3adede7cf5a6ba5e54a4440025e6d1608b01c66037

В следующем окне выбираем пункт «Добавить принтер по его TCP/IP-адресу или имени узла» и нажимаем кнопку «Далее».

q93 31c272b23bae2378f8c5fc4da12f85b6d6d656de692ee7f81edb4fa2431bf307

В следующем окне выбираем тип устройства «Устройство TCP/IP» и вписываем IP-адрес маршрутизатора, в моём случае это «192.168.0.1». Имя порта подставится автоматически. После нажимаем кнопку «Далее».

q93 0cdc6afd4026dad666220d6465543f0d4932e66c6bb9ab4b8395de7e4686dc41

Дожидаемся нахождения порта TCP/IP и открытия следующей страницы.

q93 3207e5a35db4c4e8966e1ed7182c603bb757c337b5c5b0da1b35b8131b3066c7

В открывшемся окне выбираем тип устройства «Особое» и нажимаем кнопку «Параметры».

q93 dcdc8b25fee7cf967e808745d83ff99a34d0ffcfc8337831ffdf9052633b1cf6

В новом окне проверяем указанные параметры (IP-адрес 192.168.0.1, протокол RAW, порт 9100), если надо корректируем и нажимаем кнопку «ОК». А предыдущем окне нажимаем кнопку «Далее».

q93 69ed0f22b29b2fc7b358e17d91aa222c247df5444623e21c455f6567846b035a

Компьютер попытается определить драйвер принтера.

q93 96024a038f178b438e3ab1cb7fe3a8d4c9200399133bf902d5a0e1bb6875132d

В следующем окне выбираем подходящий драйвер принтера и нажимаем кнопку «Далее». Так как ранее я подключал принтер к компьютеру, то его драйвер уже был установлен. Если драйвер не установлен, то можно его установить с диска или запустить поиск драйвера в Центре обновления Windows.

q93 088ff38fc32aff0fb6c3b66030953fe38bf98b69884117c7b87b5743e6685e86

В новом окне в поле «Имя принтера» указываем желаемое имя принтера и нажимаем кнопку «Далее».

q93 c33556d6e09a4242a90ad8422995dd09c94994ed8d3c113b5df66fde4423c1c4

В следующем окне читаем об успешной установке принтера. Здесь можно выбрать этот принтер для печати по умолчанию, поставив галочку «Использовать этот принтер по умолчанию». Ещё можно проверить печать на принтере, напечатав пробную страницу, для этого нажимаем на кнопку «Печать пробной страницы». После нажимаем кнопку «Готово».

q93 45797f656bff30db44bf32a20ef6efea8805d6ee206d1e40e17d3cc045cbc1bb

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

q93 f6c42d41dc17d3786a7fb2b92c3789792af6334541513c37d00d0571658083b6

В окне «Устройства принтеры» панели управления проверяем появление нового принтера с указанным ранее именем.

q93 ca856abef3bb0355c19e66debf0a9b051470f5b12004119f7b7fc3d6ae00616c

На этом настройка ноутбука завершена.

3. Настройка печати со смартфона.

Для печати со смартфона в магазине Google Play представлены множества различных программ. Мне понравилась программа Print Hand Premium (https://play.google.com/store/apps/details?id=com.dynamixsoftware.printhand.premium).

q93 e02227b60b5deacaf5ee5681cce1ae1e1b85d267884cb8c46fd6b97bb7ef55f3

Бесплатная её версия в нашем случае не подходит, из-за функциональных ограничений.

Поэтому я воспользовался Premium версией программы. После установки и запуска программы, нажимаем на кнопку «Установка Принтера» и в новом окне выбираем «WLAN Принтеры». В открывшемся сообщении об отсутствии найденных принтеров нажимаем «ОК». После чего программа предложит вручную указать данные принтера, чем мы и воспользуемся. Указываем любое желанное название, протокол RAW, IP-адрес маршрутизатора (192.168.0.1) и порт 9100. После нажимаем кнопку «ОК».

q93 f0faad32e169f675cd62489eb204feac5c80c75af996f7f0e11d900897fb2078

Далее программа предложит выбрать драйвер принтера. В базе доступных драйверов имеется очень большой выбор, но, к сожалению, моего принтера Lexmark E232 там не оказалось. Однако мне повезло тем, что принтер «честный», имеет встроенные шрифты и понимает популярные языки, т.е. может работать сам без компьютера с «умным» драйвером. Поэтому можно выбрать универсальный Generic драйвер «Generic PCL 5e Printer», чем я и воспользовался.

q93 e04987ccf073fff0786a1bf48e75894ca9e3835762527c2c293991e695149e89

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

q93 95c2e4437e50e637580f418aa2dffcf58f0b543b17e1c0afe1a3dda9bf56249e

Самые необходимые типовые настройки здесь доступны для корректировки. Возвращаемся назад и нажимаем «Печать». В открывшемся окне указываем количество копий, а при выборочной печати выбираем страницы для печати и нажимаем кнопку «ОК». После обработки, страница отправляется на печать, о чём появляется сообщение, которое закрываем кнопкой «ОК».

q93 d926f46975e1f3cf0c0122a8333f6832ebbbd0d5790301196e3942e5990f43e5

На этом настройка печати в смартфоне завершена.

Всем успешной печати с любых устройств!

Источник

Настройка Принт Сервера по WiFi с Компьютера или Ноутбука Windows 10

Принт сервер WiFi, или как его еще называют «сервер печати» — это специальное устройство, оснащенное Ethernet или беспроводным модулем. Оно позволяет легко и непринужденно встроить в локальную сеть любое оборудование с интерфейсом USB, которое превратится в сетевой ресурс для общего использования. Разберемся, что такое принт сервер и как его настроить с компьютера или ноутбука на Windows по беспроводной сети WiFi.

Что такое беспроводной принт сервер USB?

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

Модели кабельных или wifi принт серверов могут иметь не только один или несколько USB разъемов, но и также COM-порт для подключения принтеров старого образца. Классический самый бюджетный образец имеет один порт USB или COM, а также розетку для кабеля Ethernet, чтобы подключиться к роутеру.

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

Как подключить принт сервер через USB?

С назначением данного устройства мы разобрались, теперь давайте посмотрим, как настроить принт сервер для работы по wifi. Напомню, что я уже показывал, как подключить к сети принтер через роутер, который при наличии USB порта превращался в некое подобие принт сервера. Теперь же посмотрим на настройку на примере модели от компании Trendnet, хотя по большому счету все основные конфигурации будут производиться непосредственно на клиентских компьютерах.

Итак, прежде всего смотрим в инструкции или на наклейке на принт сервере его дефолтный IP адрес. Как правило это 192.168.1.1 или 192.168.0.1, но в зависимости от модели могут отличаться. Для того, чтобы изменить этот IP под свою сеть, для начала надо подстроиться на своем компе под данный IP, заданный производителем по умолчанию. Поэтому соединяем включенный в сеть принт сервер с компьютером при помощи патчкорда, заходим в сетевые настройки «Подключения по локальной сети» (протокол TCP/IP) и устанавливаем для ПК IP адрес из того же диапазона, но отличающийся от адреса сервера печати. В моем случае это будет 192.168.0.2.

nastroyka print servera

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

panel upravleniya print servera

Здесь находим раздел, в котором можно поменять стандартный IP адрес — в моем интерфейсе Тренднета это происходит в пункте «Change IP address». Заходим сюда и задаем статический свободный IP из диапазона разрешенных к использованию адресов, заданного в настройках маршрутизатора. В моей сети используются адреса типа 192.168.1.x, поэтому я сделаю, как на скрине ниже. В качестве шлюза (Gateway) указываем адрес самого роутера.

Источник

В данной заметке поговорим о внедрении и последующем обслуживании сервера печати (по др. принт-сервера) полезной серверной роли в Windows Server 20xx, обеспечивающей эффективный, централизованный контроль за работой всех принтеров в организации.

Внедрение сервера печати, по сравнению с обычной клиентской установкой принтера, сулит следующие преимущества:

  • Возможность централизованного управления всеми принтерами в организации, очередью печати, драйверами.
  • Обеспечение общего доступа к принтерам через публикацию в Active Directory;
  • Возможность разворачивать принтеры при помощи групповой политики;
  • Создавать пулы, что позволяет объединить несколько физических принтеров в один логический.

Исходные условия у нас таковы, что имеется определенный парк сетевых принтеров HP и Kyocera и нам необходимо настроить к ним доступ таким образом, что бы пользователь мог самостоятельно выбирать ближайший к себе принтер и устанавливать себе в систему. Для этого нам как администраторам, необходимо сначала развернуть сервер печати, добавить на него все наши принтеры, опубликовать в Active Directory, обучить пользователей простым шагам по установкедобавлению принтера или устанавливать их в автоматическом режиме при помощи групповой политики. В процессе работы, выполнять простые шаги по администрированию системы и устранять возникающие неполадки с печатью, о чем речь пойдет ниже.

1) Установка роли Print and Document Services (Служба печати и документов);

Итак, у нас имеется машина с установленным Windows Server 2012R2, хотя это может быть и 2008 и последняя на текущий момент Windows Server 2016, т.к. процесс установки службы от версии к версии отличается не сильно и сводится буквально к нескольким кликам по кнопке Далее. Запускаем Server Manager, выбираем Add Role and Features Wizard (Добавить роль и мастер компонентов).

print-server-windows-add-role

Затем соглашаемся с первым пунктом Role-based or feature-based installation (Базовая установка ролей и компонентов) жмем Далее.

print-server-windows-configure-server

На следующем экране Select Destination server (Выбор сервера назначения) выбираем сервер из пула или расположенный на VHD-диске. Поскольку у нас, пока только один локальный сервер, то жмем Next.

Выбираем роль для установки — Print and Document Services, соглашаемся с установкой дополнительных фичей — Print and Document Services Tools. Жмем Next.

На следующем экране Features, опционально выбираем компоненты для установки если нужно. Жмем Next.

print-server-add-role-and-features

Далее нам предлагают ознакомится с полезной информацией по службе печати Print and Document Services. Ознакамливаемся и жмем Next :)

windows-print-and-document-services-etc

Затем выбираем конкретные сервисы для установки. По мимо Print Server (Сервер печати) можно выбрать еще Distributed Scan Server (Распределенный сервер сканирования), Intetnet Printing (Поддержка печати через Интернет) и LPD Service (Служба печати UNIX). В рамках данной заметки нас интересует только cервер печати, поэтому выбираем его и жмем Next.

print-server-add-role-services

На завершающем экране, соглашаемся с установкой выбираемых компонентов нажатием кнопки Install.

print-server-add-role-confirm-install

Закрываем мастер при помощи close.

Те же действия, но в Powershell, можно выполнить буквально в несколько команд:

Fipmo ServerManager
add-WindowsFeature Print-Server

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

Используем классический gui-вариант добавления, либо при помощи несложной команды в PS:

Add-Computer -DomainName test.ru

Перезапускаем сервер командой:

2) Консоль управления Print Managment. Добавление драйверов и принтеров на сервер;

Запускаем консоль управления Print Managment. Для этого переходим в ПускAdministrative toolsPrint management. Либо запускаем в командной строке: printmanagement.msc

print-server-print-managment

Здесь, самый верхний узел Print Managment позволяет добавлять/удалять локальные и другие серверы печати для администрирования, а так же выполнять миграцию принтеров.

Custom Filters фильтрует принтеры по категориям: Все принтеры (All Printers), Все драйверы (All Drivers), Принтеры в состоянии «не готов» (Printers Not Ready) и принтеры с активными заданиями печати (Printers With Jobs). Так же, по правой кнопке, можно задать свой фильтр, если вам не хватает текущих.

Print Servers отображает текущие принт-серверы. В данном случае видно что у нас только один (локальный) сервер печати, где Drivers (Драйверы) показывает все драйверы на текущем сервере печати, Forms (Формы) — все поддерживаемые форматы бумаги, Ports — локальные и сетевые порты на текущем сервере печати, Printers — все установленные принтеры на текущем сервере печати.

Deployed Printers — принтеры, которые были развернуты с использованием групповой политики.

Что бы добавить новый принтер на сервер, переходим к узлу Print Servers, выбираем наш локальный сервер prints (local) в разделе Printers. Щелкаемся правой кнопкой и выбираем Add Printers (Добавить принтер). Запустится мастер добавления принтера Network Printer Installation Wizard, где доступно четыре метода установки. Первый и самый быстрый способ обнаружить сетевые принтеры это выполнить поиск в автоматическом режиме — Search the network for printers, вторым пунктом идет возможность добавить TCP/IP принтер или веб принтер по его IP-адресу или имени узла — Add a TCP/IP or Web Services Printer by IP address or hostname, далее идет возможность добавить новый принтер используя существующий порт — Add a new printer using an existing port, и последний пункт, это создание своего порта с последующим добавлением нового принтера — Create a new port and add a new printer.

print-server-network-printer-installation-wizard

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

И всего вышесказанного следует, что для корректной работы системы нам сначала  необходимо установить на сервер правильный драйвер, а затем уже добавлять сами принтеры. Поэтому скачиваем универсальный драйвер с сайта производителя, например для HP  здесь, а для Kyocera тут. Что касаемо типа драйвера, PCL5 или PCL6 то тут решайте сами. Кто то говорит что PCL5 стабильнее, но лично я не заметил особой разницы. По идее PCL версии 6 это просто более новая реализация PCL драйвера от HP, поэтому имеет смысл использовать ее.

Для добавления драйверов, в консоле Print Managment переходим на наш локальный сервер в раздел Drivers и по правой кнопке запускаем мастер добавления драйверов — Add Driver. На следующем экране выбираем тип архитектуры процессора. Если необходима поддержка 32-разрядных клиентских операционных систем то так же отмечаем чекбокс x86. Жмем Далее.

print-server-processor-selection

На экране Printer Driver Selection выбираем драйвер для принтера. Жмем Have Disk и Browse для обзора и добавления драйверов.

print-server-driver-selection

Выбираем ранее скаченный драйвер. В нашем примере это универсальный драйвер Kyocera, жмем Next и Finish. Повторяем операцию для других ваших устройств.

print-server-driver-selection2

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

print-server-drivers-complete

Обратим внимание на вкладку Driver Isolation (Изоляция драйвера), где у нас, драйверы по умолчанию помечены флагом «shared» т.е. находятся в неком изолированном режиме с общим доступом. Технология изоляции драйвера или Printer Driver Isolation (PDI), позволяет выводить работу принтеров в отдельный процесс PrintIsolationHost.exe, отдельно от диспетчера печати spoolsv.exe, и других драйверов на сервере, т.е. если возникает проблема в драйвере, то она затрагивает только процесс, который подгрузил этот драйвер, но не саму службу печати spoolsv.exe, которая при этом, остается работоспособной.

И в случае режима shared (общий доступ) все драйверы принтера настроены на работу с одним, общим экземпляром процесса PrintIsolationHost.exe, но отдельно от диспетчера печати. Данный режим является рекомендуемым Microsoft. В случае, возникновения проблем с драйверами, несовместимостью и частым падением принтеров, особенно в терминальном режиме, можно попробовать использовать режим isolated (изолированный), где уже каждый драйвер принтера, настроен на использование своего собственного экземпляра процесса PrintIsolationHost.exe и так же отдельно от диспетчера печати (spooler).

При установленном флаге «none», драйверы принтеров загружаются как обычно, при помощи диспетчера печати (spooler), т.е. если падает процесс spoolsv.exe, то это затрагивает работу сразу всех принтеров на сервере.

Теперь, после добавления корректных драйверов можно  приступать к установке принтеров. Для этого снова запускаем уже знакомый нам мастер добавления принтеров, выбираем добавить TCP/IP принтер или веб принтер по его IP-адресу. Затем выбираем тип устройства: Auto detect — автоматическое определение параметров или TCP/IP Device, в поле «host name or IP address» вводим IP-адрес сетевого принтера. Галочку Auto detect the printer driver to use (Автоматический поиск драйвера принтера) оставляем по умолчанию активной или снимаем. В данном случае она не препятствует процессу добавления «правильного» драйвера.  Жмем Next.

print-server-printer-address

На следующем экране, выбираем ранее установленный универсальный драйвер HP или Kyocera из списка или добавляем новый. Жмем Next.

print-server-printer-driver

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

print-server-printer-name-and-sharing

Соглашаемся с предложением установить принтер. Жмем Next и дожидаемся окончания процесса установки.

print-server-printer-found

Затем, что бы принтер был доступен в Active Directory для выбора, необходимо его опубликовать. Для этого переходим в свойства принтера на вкладку Sharing и отмечаем галочку List in Directory (Внести в Active Directory) и жмем Apply (Применить).

print-server-printer-active-directory

Проделываем ту же операцию для всех принтеров в организации. Можно выделить все принтеры сразу и по правой кнопке сказать: List in Directory. В итоге, можно получить примерно следующий список.

print-server-printer-managment

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

print-server-add-printer-client

Но это в теории, или по крайней мере так было раньше! На практике, при добавлении сетевого принтера под доменной учетной записью, нередко можно получить следующую ошибку:

Подключение к принтеру. Установленная на данном компьютере политика не позволяет подключение к данной очереди печати. Обратитесь к системному администратору.

Или английский вариант:

Connect to Printer. A policy is in effect on your computer which prevents you from connecting to this print queue. Please contact your system administrator.

print-server-сonnect-to-printer-error

Связано это с тем, что 12 июля 2016 года Microsoft выпустила обновление безопасности KB3170455, устраняющее критическую уязвимость в системе печати, что повлекло за собой новые требования к безопасности драйверов принтера, а именно:

1. Драйвер принтера должен быть доверенным и подписан цифровой подписью. Процесс установки проверяет наличия хешированных файлов в пакете драйвера, и если обнаруживает не хешированные (без цифровой подписи), то выводит сообщение об ограничениях существующей политики. В случае универсального драйвера от HP проверка на цифровую подпись файлов в пакете проходит успешно и принтер ставится без проблем, а вот при попытке установить на клиенте принтер от Kyocera, где в качестве драйвера используется Kyocera Universal Classic Driver, который, кстати говоря на сайте числится как ‘signed’ вылезает ошибка выше.

print-server-sha-digital-signature-driver-printer

2. Драйвер принтера должен быть упакованным, спецификация (package-aware v3). При попытке установить не упакованный драйвер (non-package-aware v3) получим сообщение о недоверии к принтеру и запрос на повышении прав позволяющий установить драйвер с административной учетной записью.

print-server-trust-printer

Проверить упакован драйвер принтера или нет, можно в консоли управления принтерами (Printer Managment) в разделе Drivers, колонка Packages. Как видим, драйвер Konica Minolta  находится в состоянии false.

print-server-printer-packages

Решить проблему с установкой не доверенных драйверов принтеров на клиентских компьютерах, нам поможет включение групповой политики: Point and Print Restriction (Ограничения указания и печати), которая находится по адресу:

Computer ConfigurationPoliciesAdministrative TemplatesPrinters (Конфигурация компьютераПолитикиАдминистративные шаблоныПринтеры).

Отмечаем галочки напротив Users can only point and print to these server (Функцию указания и печати можно использовать только на этих серверах) и через точку с запятой, указываем полные доменные имена серверов печати (FQDN). В нашем примере это: prints.test.ru В поле Security Promts (Запросы безопасности), параметрам «Then installing drivers for a new connection» и «Then updating drivers for a exsiting connection» (При установке/обновлении драйверов для нового подключения) выставляем: Don’t show warning or elevation promt (Не показывать предупреждение или запрос на повышении прав).

print-server-print-and-point-restrictionsНе лишним будет так же включение политики: Package Point and Print — Approved servers (Функция указания и печати для пакетов — Разрешенные серверы) которая находится там же по адресу: Computer ConfigurationPoliciesAdministrative TemplatesPrinters. Данная политика полностью независима от Point and Print Restriction и распространяется только на пакетные драйверы, что в итоге помогло снять ошибку возникающую во время установки универсального драйвера от Kyocera.

В поле Enter fully qualified server names (Введите полные доменные имена серверов) задаем имя сервера печати. Жмем применить. На принт-сервере и на клиентских ПК запускаем принудительное обновление политик при помощи gpupdate /force. После чего установка принтеров должна происходить без вопросов.

print-server-print-and-point-approved-servers

3) Консоль управления Print Managment. Добавление принтеров в пул (Print Pooling);

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

Для того что бы объединить несколько принтеров в пул, переходим в раздел Printers нашего принт-сервера и добавляем как обычно новый принтер в систему либо выбираем существующий. Затем переходим на вкладку Ports (порты) и добавляем новый TCP/IP-порт соответствующий IP-адресу другого принтера в будущем пуле.

print-server-add-ports

Выбираем Standart TCP/IP Port и жмем New Port… Затем прописываем IP-адрес принтера, жмем Next и Finish. Добавляем столько портов сколько нам нужно в пуле.

print-server-add-print-name-ip-address

Теперь переходим в свойства будущего логического принтера, на вкладку Ports (Порты) и отмечаем чекбокс Enable print pooling (Разрешить группировку принтеров в пул), затем дополнительно выбираем ранее созданный порт 192.168.0.210 и жмем Apply (Применить);

print-server-enable-printer-pooling

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

4) Консоль управления Print Managment. Установка принтеров при помощи групповой политики;

Что если в нашей организации 50-100 и более компьютеров, а пользователи, как это не редко бывает сами не хотят / не умеют или не знают какой из принтеров в каталоге им необходимо установить? В данном сценарии нам поможет инструмент установки принтера при помощи групповой политики. Например, если известно, что у определенного пользователя или группы должен быть установлен определенный принтер, то можно заранее в автоматическом режиме развернуть нужные принтеры, незаметно для пользователя и без прямого вмешательства системного администратора. Для этого необходимо авторизоваться на сервере-печати под доменной учетной записью с правами Print Operators или выше, затем перейти в консоль Print Managment, отметить нужный принтер и по правой кнопке выбрать пункт Deploy with Group Policy (Развернуть с помощью групповой политики). В качестве примера, проделаем данную операцию для принтера «Операторы». В поле GPO name выберем объект групповой политики на который будет распространяться политика автоматической установки принтера. Я выберу заранее созданный объект Operator, который в свою очередь привязан к подразделению Operators, внутри которого находятся объекты пользователей для которых и производится установка принтера.

print-server-deploy-with-group-policy1

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

print-server-deploy-with-group-policy2

Перезапускаем клиентский компьютер и видим что принтер «Операторы» успешно добавлен в сиcтему.

5) Перенос конфигурации с одного сервера печати на другой;

В случае, замены сервера печати или аварийной ситуации может потребоваться быстро восстановить существующую конфигурацию на другой сервер. И дабы сократить время восстановления, желательно уже иметь в запасе резервную машину с установленной службой печати и заранее экспортированным файлом резервной копии в специальном формате .printerExport. Данный файл содержит полную копию всех установленных принтеров, портов и драйверов позволяющих развернуть аналогичную конфигурацию на другом сервере. Для того что бы получить такой файл, необходимо перейти в корень локального сервера утилиты Print Managment, в нашем случае ‘prints (local)’, щелкнуться правой кнопкой и выбрать Export printers to a file… (Экспортировать принтеры в файл). Следовать указаниям мастера и получить на выходе файл резервной копии.

print-server-export-printers-to-a-file

В рамках данной статьи, текущий (исходный) сервер у нас имеет сетевое имя: prints, новый, конечный, куда переносится конфигурация: prints-new, таким образом шаги по переносу данных с одного принт-сервера на другой будут следующими:

  • На резервном (новом) сервере, поднимаем роль службы печати и документов, если она не была добавлена ранее.
  • На старом сервере отменяем публикацию в Active Directory, снятием галочки List in Directory в свойствах каждого установленного принтера либо выделяем все принтеры сразу и по правой кнопке выбираем: Remove from Directory;
  • Выводим, если это возможно старый сервер из домена, меняем сетевое имя на prints-old, перегружаемся. Если данная возможность не доступна, например в случае физического выхода из строя сервера, то удаляем компьютер/сервер на контроллере, например из оснастки «Active Directory Users and Computers» в контейнере Computers. На предложение удалить все вложенные объекты (Confirm Subtree Deletion) отвечаем утвердительно.
  • На новом сервере, куда переносим конфигурацию меняем сетевое имя на prints, добавляем в домен.
  • Восстанавливаем экспортированный ранее файл .printerExport на новом сервере. (Import printers from a file…). В процессе импорта есть возможность сразу опубликовать принтеры для общего доступа в службе каталогов (List in directory). После чего, проверяем работу принтеров на новом сервере.

6) Устранение неполадок в работе службы печати;

Что касаемо, неполадок возникающих в процессе работы службы печати и их устранении, то здесь писать особо нечего, т.к. все сводится буквально к нескольким шагам, по остановке службы печати, зачистке очередей печати в %windir%System32spoolPRINTERS и последующем старте службы, что известно практически каждому админу и не только. Для полноты обзора, и для совсем  «зеленых» товарищей приведу всем известную последовательность команд :)

Запускаем командную строку — cmd.exe;

Останавливаем службу печати:

Чистим очередь печати, удаляя *.SHD, *.SPL, *.TMP файлы внутри директории,  командой:

del /q /f %windir%System32spoolPRINTERS*.*

Запускаем службу печати:

Либо делаем профилактический рестарт службы, без зачистки очереди:

net stop spooler & net start spooler

Можно сделать батник для запуска а автоматическом режиме. Сохраняем файл например под именем spool.cmd.

setlocal
net stop spooler
del /q /f %windir%System32spoolPRINTERS*.*
net start spooler

Перезапустить службу можно и при помощи gui интерфейса, в оснастке «службы» — services.msc, а почистить папку PRINTERS в проводнике, но как по мне в консоле или батником быстрее.


Прочитано:
15 429

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

Все дальнейшие действия будут происходит в домене уровня: Windows Server 2008 R2 SP1 Enterprise (для Server 2012 R2 Std все аналогично)

Мне потребуется развернуть еще одну систему в домене на базе операционной системы Windows Server 2008 R2 SP1 Enterprise — srv-print.polygon.local и уже на ней развернуть роль сервера печати, потому как я не поклонник нагромождения всего и вся на одной системе, даже в тестовых целях ну конечно если уж слишком надо, то это возможно. Ниже я рассмотрю все трудности и шаги по исполнению поставленной себе задачи, как задокумментировать весь процесс со всеми нюансами и наблюдениями.

Авторизуюсь в системе с правами администратора домена на станции (srv-print):

Добавляю роль:

Start — Control Panel — Administrative Tools — Server Manager — Roles — Add Roles, роль называется: Print And Document Services, и оставляем галку только сервер печати (Print Server)

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

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

Скачиваю драйвера под принтер HP 2055dnНа терминальном сервере создаю каталог и распаковываю пока файлы upd-pcl6 туда.

Теперь когда роль сервера печати установлена, пора переходить к полной настройке:

Start — Control Panel — Administrative Tools — запускаем оснастку Print Management

в этой оснастке для принтеров использующихся у Вас в обслуживании загружаю драйвера для принтера как для архитектуры x86 так и для x64:

Print Servers — srv-print (local) — Drivers — через правый клик вызываю мастер «Add Driver», Next, сперва отмечаю x86 (Type 3 — User Mode) ,Next — нажимаю Have Disk, посредством проводника системы указываю путь с распакованными драйверами для архитектуры Windows x86, в моем случаем путь следующий:

c:Driverupd-pcl6-x32-6.2.0.20412

Выделив драйвер нажимаю Next

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

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

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

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

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

Print Servers — srv-print (local) — Printers — и через правый клик вызываем мастер «Add Printer…», здесь нужно указать как достучаться до принтера, я выбираю пункт: Add a TCP/IP or Web Services Printer by IP address or hostname и нажимаю Next, далее указываю параметры подключения:

  • Type of Device: Autodetect
  • Host name or IP address: 10.7.8.20
  • Port name: 10.7.8.20

и обязательно ставим галочку: Auto detect the printer driver to use и нажимаем Next, следующим шагом нужно указать именование принтера (обычно я делаю с учетом расположенности по определению местонахождения):

  • Printer Name: One-Floor-HPLJP-2055DN-SKLAD

и ставим галочку на параметре: Share this printer

  • Share name: One-Floor-HPLJP-2055DN-SKLAD
  • Render print jobs on client computers
  • List in the directory.

теперь нажимаю Next, Next, Finish

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

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

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

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

Теперь нужно опубликовать данный принтер на пользователя alektest и произвести печать:

На заметку: удобнее управлять группой чем конкретными пользователями/компьютерами, Я всегда использую группы (она всегда может вдруг понадобиться если скажет сделать все то же самое что и этого пользователя) так проще.

На домен контроллере в оснастке Start — Control Panel — Administrative Tools — Active Directory Users and Computer текущего домена polygon.local создаю группу (имя: B_PRN_ONE-FLOOR-HPLJP-2055DN-SKLAD) в которую помещаю имя пользователя (alektest).

На домен контроллере в оснастке Start — Control Panel — Administrative Tools — Group Policy Management создаю групповую политику с именем GPO_PRN_ONE_FLOOR_HPLJP_2055DN-SKLAD и нацеливаю ее на созданную ранее группу пользователей у которых должен установиться данный принтер.

Групповая политика нацелена на группуТеперь переключаюсь на систему где развернут сервис печати.

На заметку: роли AD и Print Server можно развернуть и на одной системе, но лучше придерживаться правила (если позволяют ресурсы), одна система — один сервис или сервисы объединенные одним функционалом.

Start — Control Panel — Administrative Tools — запускаем оснастку Print Management — Print Servers — Printer — находим добавленный ранее принтер который относится у меня к складу, выделяю его и через правый клик запускаю мастер «Deploy with Group Policy», затем двигаюсь по шагам мастера: — Указываю наименование групповой политики под этот принтер, нажимаю Browse из списка всех политик моего домена нахожу ту созданную ранее и нажимаю кнопку OK. Теперь нужно определить на кого будет распространяться данная политика: либо на пользователя, либо на компьютер, у меня на компьютер, а потому отмечаю пункт: The computer that this GPO applies to (per machine) и нажимаю Add в итоге у Вас должно быть в точности как на представленном скриншоте ниже.

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

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

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

Start — Control Panel — Administrative Tools — Group Policy Management — GPO_PRN_ONE_FLOOR_HPLJP_2055DN-SKLAD — User Configuration — Policies — Windows Settings — Scripts (Logon/Logoff) — Logon — Add

  • Script Name: PushPrinterConnections.exe
  • Script Parameters: -log (чтобы на рабочих станциях формировать логи)

и нажимаю OK окна Add a Script

Активируем логирование назначения установки принтера, а после сохраняю первые изменения нажатием кнопки Apply

На заметку: при добавленном параметре «-log» Файлы журналов записываются в %WINDIR%tempppcMachine.log (для подключений на уровне компьютеров) и %temp%ppcUser.log (для подключений на уровне пользователей) на компьютере, на котором применяется политика, только это все применимо к Windows XP на Windows 7 хоть и заявлено, что должно работать — не работает.

Затем узнаю идентификатор данной политики: Start — Control Panel — Administrative Tools — Group Policy Management — GPO_PRN_ONE_FLOOR_HPLJP_2055DN-SKLAD — вкладка: Details — и напротив параметра Unique ID и есть ее идентификатор (F8A6C476-EEE2B-4AE4-9008-E3F63FFBE69A), он нужен чтобы по адресу групповой политики положить файл PushPrinterConnections.exe который можно скопировать из c:windowssystem32 (сервера где развернута служба Print Server)

Win + E → \polygon.localsysvolpolygon.localPolicies{F8A6C476-EE2B-4AE4-9008-E3F63FFBE69A}UserScriptsLogon

На заметку: файл PushPrinterConnections.exe на Windows Server 2008 R2 — 64-bit и он не будет работать там где политика применяется к Windows 7 x86, а потому данный файл необходимо взять из Windows Server 2008 x86.

Использование файла PushPrinterConnections.exe оправдана только тогда когда в Вашей доменной сети используется системы Windows XP & Windows Server 2003.

В процессе тестирования решил опробовать, как поведен себя установка назначенного политикой принтера если драйвера у него не универсальные, а именные, к примеру: HP LaserJet P2050 Series PCL6

Именные драйвера для принтера, а не универсальныеНазначил политику на компьютер (W7X86), перезагрузил рабочую станцию (W7X86), затем авторизовался, открыть оснастку «Устройств и Принтеры» и вот он мой добавленный политикой принтер:
Политика применилась и принтер через GPO установлен с Print ServerДля того, чтобы дать возможность пользователям управлять своими отправленными заданиями на печать нужно сделать следующее: На Print Server — Start — Control Panel — Administrative Tools — Print Management — Print Servers — srv-print (local) — Printers — находим нужный принтер, через правый клик по нему вызываем его Properties (Свойства), затем вкладка Security. По умолчанию выставлена галочка разрешающая печать (Print) для Всех, чтобы управлять этим принтером следует поставить добавить группу пользователей (или компьютеров) и уже нацеленно ей дать права поставив галочку у параметра Manage this printer.

Протестировал:

  • Политика — Принтер на пользователя — добавляем пользователя в группу, делаем Logoff/Logon и принтер устанавливается пользователю.
  • Политика — Принтер на компьютер — добавляем компьютер в группу, перезагружаем компьютер и принтер устанавливается на компьютер и доступен любому пользователю на данной рабочей станции.

Итого: Print Server отлично работает, как с универсальными драйверами так и именными, основные моменты разобраны, потихоньку буду налаживать работу инфраструктуры на тот функционал задействованных систем на которые они способны. А бегать вручную и добавлять каждому принтер уже как-то надоело.

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

На заметку: если назначенный политикой принтер на пользователя все равно не отображается в «Устройства и Принтеры», то значит политика еще не дошла до пользователя, можно либо перезагрузить систему, либо же в командной строке набрать команду gpupdate /force, а после сделать Logoff/Logon. И вот теперь видны все назначенные принтера:

Назначение еще одного принтера через групповые политикиВот собственно и всё, с уважением Олло Александр aka ekzorchik.


Обновлено 12.06.2017

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

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

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

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

Ставим print server windows server 2012 R2-01

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

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

Настройка print server windows server 2012 R2-01

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

Настройка сервера печати windows server 2012 R2-02

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

Настройка print server windows server 2012 R2-03

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

Настройка сервера печати windows server 2012 R2-04

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

сервер сетевой печати

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

настройка сервера печати windows server 2012 r2

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

сервер сетевой печати

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

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

Настройка сервера печати windows server 2012 R2-08

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

печать через сервер

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

печать через сервер

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

Настройка сервера печати windows server 2012 R2-11

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

Настройка сервера печати windows server 2012 R2-12

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

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

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

сервер печати windows server 2012-2

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

сервер печати windows server 2012-3

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

сервер печати windows server 2012-4

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

сервер печати windows server 2012-5

Задаем:

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

сервер печати windows server 2012-6

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

сервер печати windows server 2012-7

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

свойства сервера печати

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

свойства сервера печати

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

свойства сервера печати-2

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

сетевой принтер-1

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

сетевой принтер-2

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

сетевой принтер-3

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

  • Remove From My Forums

 none

создание отказоустойчивого принт-сервера

  • Общие обсуждения

  • Добрый день.
    Мы решаем следующую задачу: создание отказоустойчивого принт-сервера. Решили не использоваться отказоустойчивой кластер, а поднять два принт-сервера.
    Хотим добиться следующего эффекта: половина принтеров будет заведено на один принт сервер ps1 (с алиасом PRINT1), остальная половина будет заведена на второй ps2 (с алиасом PRINT2).

    Проводим тест: выход из строя PS1.
    Вносим изменений в алиас PRINT1 у атрибута FQDN с ps1 на ps2. Т.е проводим подмену принтеров с одного принт-сервера на второй.
    Получаем ошибку: при отправке на печать задания уходят на ps1, а не на ps2, как это должно быть.
    P.S. так как групповые политики были созданы на принт-сервере, нашли только один способ, чтобы изменить путь к принтеру. Делаем бекап ГПО и с помощью блокнота редактировали путь c
    \ps1printer на \ print1printer. После этого восстанавливали из копии и распространяли. 

    • Изменен тип

      16 августа 2018 г. 10:01

Понравилась статья? Поделить с друзьями:
  • Отвалился wifi на ноутбуке windows 10
  • Отказоустойчивый кластер windows server 2019 hyper v
  • Отваливаются драйвера видеокарты на windows 10
  • Отказоустойчивый кластер windows server 2008 r2
  • Отваливаются usb порты в windows 10 все