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

Инструкция подходит для Windows Server 2016, 2019, 2022 и 2025.

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

Нужна роль «Службы печати и документов» (Print and Document Services) с компонентом «Сервер печати».

Через диспетчер серверов: «Управление» - «Добавить роли и компоненты» - выберите сервер - отметьте «Службы печати и документов» - на шаге служб ролей оставьте «Сервер печати» - «Установить».

Через PowerShell:

powershell
Install-WindowsFeature Print-Server -IncludeManagementTools

Ключ -IncludeManagementTools ставит и консоль «Управление печатью». На рабочей станции с RSAT консоль тоже можно установить и управлять серверами удалённо.

Остальные службы роли - печать через Интернет и служба LPD (Microsoft считает её устаревшей) - нужны редко и без необходимости их лучше не ставить.

Консоль «Управление печатью»

Консоль открывается из меню «Средства» диспетчера серверов или командой:

batch
printmanagement.msc

В дереве слева три основных раздела:

  • Настраиваемые фильтры - готовые выборки по всем серверам: «Все принтеры», «Все драйверы», «Принтеры не в состоянии готовности», «Принтеры с заданиями». Сюда же добавляются собственные фильтры.
  • Серверы печати - каждый сервер с узлами «Драйверы», «Формы», «Порты» и «Принтеры».
  • Развёрнутые принтеры - принтеры, разосланные клиентам через групповую политику.

Чтобы управлять несколькими серверами из одной консоли, щёлкните правой кнопкой «Серверы печати» - «Добавить или удалить серверы» и впишите их имена.

Добавление принтера

Сетевой принтер по IP-адресу

Большинство офисных принтеров подключены к сети напрямую. На сервере для них создаётся стандартный TCP/IP-порт:

  1. Раскройте сервер, щёлкните правой кнопкой «Принтеры» - «Добавить принтер».
  2. Выберите «Добавить TCP/IP или веб-службы принтер по IP-адресу или имени узла».
  3. Укажите IP-адрес или DNS-имя принтера. Имя порта подставится само.
  4. Выберите драйвер: уже установленный, из списка Windows или с диска (папка с .inf-файлом от производителя).
  5. Задайте имя принтера и имя общего ресурса, при желании - расположение и комментарий.

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

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

Принтер, подключённый к серверу по USB

Подключите принтер к серверу и установите драйвер. Windows обычно находит устройство сама, и оно появляется в списке принтеров. Остаётся включить общий доступ. Для больших сетей такой вариант неудобен: сервер приходится ставить рядом с принтером.

То же через PowerShell

powershell
Add-PrinterDriver -Name "Имя драйвера"
Add-PrinterPort -Name "IP_192.168.10.50" -PrinterHostAddress "192.168.10.50"
Add-Printer -Name "Бухгалтерия" -DriverName "Имя драйвера" -PortName "IP_192.168.10.50" -Shared -ShareName "Buh" -Location "Этаж 2, каб. 214"

Имя драйвера пишется точно так, как оно указано в его .inf-файле. Драйвер для Add-PrinterDriver должен быть уже в хранилище драйверов системы. Пакет производителя добавляют туда командой pnputil /add-driver путь\*.inf.

Общий доступ и публикация в Active Directory

В свойствах принтера на вкладке «Доступ»:

  • Общий доступ к этому принтеру - включает или выключает доступ по сети. Имя общего ресурса лучше делать коротким и без пробелов: его будут вводить в виде \\сервер\имя.
  • Внести в каталог - публикует принтер в Active Directory. Пользователи смогут найти его поиском при добавлении принтера, в том числе по расположению.

В PowerShell:

powershell
Set-Printer -Name "Бухгалтерия" -Shared $true -ShareName "Buh" -Published $true

Чтобы временно закрыть принтер для пользователей, не удаляя его, просто снимите флажок общего доступа.

Свойства принтера: расположение, расписание, приоритет

Расположение и комментарий на вкладке «Общие» стоит заполнять сразу. Расположение вроде «Этаж 2, каб. 214» видно при поиске, а комментарий подскажет, какой это аппарат и для чего он.

На вкладке «Дополнительно» настраивается поведение очереди:

  • Доступен с ... по ... - расписание. Задания, отправленные вне этого времени, ждут в очереди. Пригодится для больших тиражей, которые лучше печатать ночью.
  • Приоритет - от 1 до 99. Используется, когда на одно устройство заведено несколько логических принтеров: например, «Руководство» с приоритетом 99 и «Общий» с приоритетом 1 на одном порту. Задания с большим приоритетом печатаются раньше.
  • Использовать очередь с вариантом «Начинать печать после помещения в очередь последней страницы» - снижает вероятность перемешанных страниц на медленных сетях.

Пул принтеров - на вкладке «Порты» включите «Разрешить группировку принтеров в пул» и отметьте порты нескольких одинаковых устройств. Пользователь видит один принтер, а задания распределяются по свободным аппаратам. Ставьте такие устройства рядом: человек не знает, из какого выйдет его документ.

Права доступа

На вкладке «Безопасность» есть три основных разрешения:

  • Печать - отправлять задания и управлять своими документами;
  • Управление документами - приостанавливать, перезапускать и удалять чужие задания;
  • Управление принтером - менять настройки, права и общий доступ.

По умолчанию печатать могут все, а группа «СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ» управляет своими документами. Если принтер должен быть только у одного отдела, уберите «Все» и добавьте группу этого отдела с правом «Печать». Ответственному сотруднику, который разбирает застрявшие задания, достаточно права «Управление документами».

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

Щёлкните правой кнопкой сервер в консоли - «Свойства». Здесь собраны общие для всех принтеров настройки:

  • Формы - размеры бумаги. Нестандартный размер, например для бланков или этикеток, создаётся здесь.
  • Порты - все порты сервера, их можно настроить или удалить.
  • Драйверы - установленные драйверы для всех архитектур.
  • Дополнительно - папка очереди печати. По умолчанию это C:\Windows\System32\spool\PRINTERS. На нагруженном сервере её стоит перенести на отдельный диск, чтобы большие задания не заполнили системный.

Драйверы

Блок с шестерёнкой, стрелка к принтеру и отметка успеха

Драйверы - главный источник проблем на сервере печати.

Тип 3 и тип 4. Драйверы типа 3 - классические драйверы производителей, их нужно ставить на сервер отдельно для каждой архитектуры клиентов. Драйверы типа 4 устроены иначе: клиент использует свой драйвер класса и получает от сервера только описание возможностей принтера. Если производитель выпускает драйвер типа 4, на сервере печати он обычно проще.

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

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

Удаление драйвера. Сначала удалите или переключите на другой драйвер все принтеры, которые его используют. Затем в узле «Драйверы» выберите «Удалить пакет драйвера», чтобы убрать и файлы из хранилища.

Подключение клиентов и Point and Print

Пользователь подключается к общему принтеру по адресу \\сервер\имя_ресурса: через «Принтеры и сканеры» - «Добавить устройство» или просто вводом адреса в проводнике. Командой:

powershell
Add-Printer -ConnectionName "\\print01\Buh"

При подключении клиент получает драйвер с сервера. Этот механизм называется Point and Print, и из-за найденных в нём уязвимостей Windows по умолчанию разрешает устанавливать драйверы таким способом только администраторам. Обычный пользователь при подключении увидит запрос учётных данных администратора или ошибку.

Как решить без ослабления защиты:

  • Предустановить драйвер на клиентах. Если на компьютере уже есть тот же драйвер, подключение проходит без запроса прав. Драйвер раздают средствами развёртывания ПО или скриптом с pnputil /add-driver ... /install.
  • Подключать принтеры через групповую политику (см. ниже): политика выполняется с правами системы и сама ставит драйвер.
  • Ограничить доверенные серверы. В политике «Ограничения указания и печати» и «Утверждённые серверы для пакетной установки драйверов» перечислите только свои серверы печати.

Отключать защиту целиком (разрешать установку драйверов всем пользователям) не стоит: это открывает дорогу для атак через подменённый сервер печати.

Развёртывание принтеров через групповую политику

Через «Предпочтения групповой политики»

Самый гибкий способ:

  1. Создайте или откройте объект групповой политики, привязанный к нужному подразделению.
  2. Перейдите в «Конфигурация пользователя» - «Настройка» - «Параметры панели управления» - «Принтеры».
  3. «Создать» - «Общий принтер». Действие - «Обновить», путь - \\print01\Buh. Можно отметить «Использовать этот принтер по умолчанию».
  4. На вкладке «Общие параметры» включите «Нацеливание на уровне элемента» и укажите, например, группу безопасности или IP-диапазон. Так один объект политики раздаёт разным отделам разные принтеры.

Действие «Обновить» добавит принтер, если его нет, и не будет пересоздавать его при каждом входе.

Из консоли «Управление печатью»

Щёлкните принтер правой кнопкой - «Развернуть с помощью групповой политики», выберите объект политики и отметьте, для кого разворачивать: пользователей или компьютеров. Это быстрее, но гибкости меньше, поэтому для больших сетей удобнее предпочтения.

После изменения политики на клиенте можно выполнить gpupdate /force и перезайти в систему.

Очереди и задания печати

Листы документов движутся по конвейеру к принтеру, одно задание выделено

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

Действия с принтером (меню «Принтер» в окне очереди):

  • Приостановить печать - задания продолжают поступать, но не печатаются. Удобно на время замены картриджа или ремонта.
  • Возобновить - снять паузу.
  • Очистить очередь - удалить все задания.

Действия с отдельным документом (правый клик по заданию):

  • Приостановить и Продолжить - задержать одно задание, не мешая остальным;
  • Перезапустить - напечатать документ заново с начала, например после замятия;
  • Отменить - удалить задание.

В PowerShell:

powershell
Get-PrintJob -PrinterName "Бухгалтерия"
Suspend-PrintJob -PrinterName "Бухгалтерия" -ID 12
Resume-PrintJob -PrinterName "Бухгалтерия" -ID 12
Restart-PrintJob -PrinterName "Бухгалтерия" -ID 12
Remove-PrintJob -PrinterName "Бухгалтерия" -ID 12

Если очередь зависла

Задание висит со статусом «Удаление» или вся очередь стоит и не очищается. Помогает сброс службы печати с удалением файлов очереди:

batch
net stop spooler
del /q C:\Windows\System32\spool\PRINTERS\*
net start spooler

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

Мониторинг принтеров и уведомления

Для постоянного контроля удобны собственные фильтры. Щёлкните «Настраиваемые фильтры» - «Добавить новый фильтр принтеров», задайте условие, например «Состояние очереди - не равно - Готов», и на последнем шаге настройте уведомление:

  • письмо на адрес администратора через ваш SMTP-сервер;
  • запуск скрипта, например для записи в журнал или отправки сообщения в систему мониторинга.

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

Подробную историю печати пишет журнал «Журналы приложений и служб» - «Microsoft» - «Windows» - «PrintService» - «Работает». По умолчанию он выключен: щёлкните его правой кнопкой - «Включить журнал». После этого для каждого напечатанного документа появится событие с кодом 307: кто печатал, что и на каком принтере. Увеличьте размер журнала, если нужна история за длительный срок.

Перенос принтеров на новый сервер

Два сервера, сверху вниз между ними перемещаются принтеры

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

Мастер в консоли

  1. В консоли «Управление печатью» на старом сервере щёлкните правой кнопкой корень «Управление печатью» - «Перенести принтеры».
  2. Выберите «Экспортировать очереди принтеров и драйверы принтеров в файл», укажите сервер и путь к файлу .printerExport.
  3. На новом сервере с установленной ролью запустите тот же мастер и выберите «Импортировать очереди принтеров и драйверы принтеров из файла».
  4. Укажите, что делать с уже существующими принтерами (оставить или перезаписать), и нужно ли публиковать принтеры в каталоге.

Командой PrintBrm

То же самое делает утилита PrintBrm.exe из папки C:\Windows\System32\spool\tools. Её удобно использовать в скриптах и на серверах без графического интерфейса.

Экспорт со старого сервера:

batch
C:\Windows\System32\spool\tools\PrintBrm.exe -s \\print-old -b -f D:\backup\printers.printerExport

Импорт на новый сервер:

batch
C:\Windows\System32\spool\tools\PrintBrm.exe -s \\print-new -r -f D:\backup\printers.printerExport

Ключ -b - экспорт, -r - восстановление, -s - сервер, -f - файл. Ключ -o force при импорте перезаписывает существующие принтеры.

После переноса

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

  • Поменять путь в групповой политике на новый сервер. Если принтеры раздаются через предпочтения с действием «Обновить», лучше создать для нового пути новые элементы, а старые - с действием «Удалить».
  • Дать новому серверу старое имя после вывода старого из работы. Самый незаметный для пользователей вариант, если он возможен.

Обращаться к серверу печати через DNS-псевдоним (CNAME) тоже можно, но для этого нужна дополнительная настройка проверки имён и SPN на сервере. Без неё подключение по псевдониму не заработает.

Безопасность службы печати

Служба диспетчера очереди печати (Spooler) не раз оказывалась источником серьёзных уязвимостей. Несколько правил:

  • Отключите службу печати на серверах, которые не печатают, особенно на контроллерах домена: Stop-Service Spooler, Set-Service Spooler -StartupType Disabled.
  • Держите сервер печати отдельно от контроллеров домена и важных серверов приложений.
  • Ставьте обновления Windows своевременно: исправления для службы печати выходят регулярно.
  • Берите драйверы только с сайтов производителей и удаляйте неиспользуемые.

Если своего сервера печати держать не хочется, у Microsoft есть облачная служба печати для организаций на Microsoft 365. Но для большинства локальных сетей классический сервер печати остаётся самым простым и предсказуемым вариантом.