40 принтеров и хаос с драйверами: централизованная печать для юридического холдинга

Задача клиента: 40 принтеров, 300 сотрудников и полный хаос

В ноябре 2025 года к нам в АйТи Фреш обратился юридический холдинг «ПравоГрупп» из Москвы. Компания занимала 3 этажа бизнес-центра, в штате 300 сотрудников, на балансе 40 принтеров разных производителей: HP LaserJet, Kyocera ECOSYS, Canon imageRUNNER и несколько Brother для удалённых кабинетов. Проблема с печатью стала системной.

Юристы не могли найти нужный принтер — в списке «Устройства и принтеры» у каждого было по 15–20 принтеров, часть из которых уже давно не существовала. Драйверы конфликтовали: после обновления Windows 11 половина принтеров HP перестала печатать. Секретари вручную устанавливали принтеры новым сотрудникам — процесс занимал 30–40 минут на человека.

«Наши юристы тратят время на борьбу с принтерами вместо работы с клиентами. Каждый понедельник у меня на столе лежат 5–10 заявок: не печатает, не видит принтер, напечаталось на другом этаже. Это должно прекратиться» — управляющий партнёр «ПравоГрупп».

Аудит текущего состояния печати

Наши специалисты провели аудит инфраструктуры печати:

  • Active Directory: Windows Server 2019, один домен pravogroup.local, 300 пользователей в 12 OU
  • Принтеры: 40 устройств, подключены по IP напрямую к рабочим станциям (не через сервер печати)
  • Драйверы: 23 разных версии драйверов HP, 8 версий Kyocera, 5 версий Canon — каждый сотрудник устанавливал свою
  • GPO: не использовались для принтеров
# PowerShell — аудит принтеров на рабочих станциях
# Запускаем на нескольких машинах для понимания масштаба

Get-Printer | Select-Object Name, DriverName, PortName, Shared |
  Format-Table -AutoSize

# Name                          DriverName                  PortName
# ----                          ----------                  --------
# HP LaserJet Pro M404           HP LaserJet M402-M403       IP_10.0.3.21
# HP LaserJet Pro M404 (Copy 1)  HP Universal Printing PCL6  IP_10.0.3.21
# Kyocera ECOSYS M2040dn         Kyocera Classic Universalp  IP_10.0.3.35
# Canon iR-ADV C3525 III         Canon Generic Plus UFR II   IP_10.0.3.40
# HP LaserJet 400 M401           HP LaserJet 400 M401        IP_10.0.3.22
# Fax                            Microsoft Shared Fax Driver SHRFAX:
# Microsoft XPS Document Writer  Microsoft XPS Document Wr   PORTPROMPT:
# ... ещё 14 принтеров

# У одного юриста — 21 принтер, из них 8 уже не существуют!

# Проверяем драйверы
Get-PrinterDriver | Select-Object Name, MajorVersion | Sort-Object Name
# 37 разных драйверов на одной машине!

Главная проблема — отсутствие централизованного управления. Принтеры добавлялись вручную, драйверы устанавливались каждым пользователем индивидуально, нет единой точки администрирования. При смене IP-адреса принтера нужно было обходить 50–100 рабочих станций.

Планирование архитектуры

Мы разработали целевую архитектуру:

  1. Централизованный сервер печати на Windows Server 2022 с ролью Print Server
  2. Унифицированные драйверы: HP Universal Print Driver, Kyocera Universal Driver, Canon Generic Plus UFR II
  3. GPO-развёртывание: каждый отдел получает только свои принтеры автоматически
  4. PaperCut MF: учёт и квоты печати для контроля расходов
  5. Мониторинг: SNMP-мониторинг тонера, замятий и ошибок

Настройка сервера печати Windows Server 2022

Мы выделили виртуальную машину (4 vCPU, 8 ГБ RAM, 100 ГБ SSD) для роли сервера печати. Отдельный сервер гарантирует, что проблемы со спулером не повлияют на контроллер домена.

Установка роли Print Server и настройка драйверов

# PowerShell — установка роли Print and Document Services
Install-WindowsFeature Print-Server -IncludeManagementTools
Install-WindowsFeature Print-Internet -IncludeAllSubFeature

# Проверяем
Get-WindowsFeature Print*
# [X] Print and Document Services
#   [X] Print Server
#   [X] Internet Printing

# Устанавливаем унифицированные драйверы
# HP Universal Print Driver (PCL6)
pnputil /add-driver "C:\Drivers\HP\hpcu270u.inf"

# Kyocera Universal Driver
pnputil /add-driver "C:\Drivers\Kyocera\OEMSETUP.inf"

# Canon Generic Plus UFR II
pnputil /add-driver "C:\Drivers\Canon\CNLB0MA64.inf"

# Добавляем драйверы в хранилище сервера печати
Add-PrinterDriver -Name "HP Universal Printing PCL 6"
Add-PrinterDriver -Name "Kyocera Universal Driver"
Add-PrinterDriver -Name "Canon Generic Plus UFR II"

# Проверяем установленные драйверы
Get-PrinterDriver | Select-Object Name, PrinterEnvironment, MajorVersion |
  Format-Table -AutoSize
# Name                            PrinterEnvironment       MajorVersion
# ----                            ------------------       ------------
# HP Universal Printing PCL 6     Windows x64              4
# Kyocera Universal Driver        Windows x64              4
# Canon Generic Plus UFR II       Windows x64              4

Три универсальных драйвера вместо 37-ми. HP UPD поддерживает все модели HP LaserJet, Kyocera Universal — все ECOSYS, Canon Generic Plus — все imageRUNNER. Это радикально упрощает администрирование.

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

Все 40 принтеров добавляются через PowerShell-скрипт с CSV-файлом:

# Файл printers.csv:
# Name,IP,Driver,Location,Floor,Department,Color
# HP-M404-1F-Reception,10.0.3.21,HP Universal Printing PCL 6,"1 этаж, ресепшн",1,Reception,false
# Kyocera-M2040-2F-Docs,10.0.3.35,Kyocera Universal Driver,"2 этаж, документооборот",2,Documents,false
# Canon-C3525-3F-Color,10.0.3.40,Canon Generic Plus UFR II,"3 этаж, зал переговоров",3,Meeting,true

# Скрипт массового добавления принтеров
$printers = Import-Csv -Path "C:\Setup\printers.csv" -Encoding UTF8

foreach ($p in $printers) {
    # Создаём TCP/IP порт
    $portName = "TCP_$($p.IP)"
    Add-PrinterPort -Name $portName -PrinterHostAddress $p.IP -ErrorAction SilentlyContinue
    
    # Создаём принтер
    Add-Printer -Name $p.Name `
        -DriverName $p.Driver `
        -PortName $portName `
        -Location $p.Location `
        -Comment "Этаж $($p.Floor), $($p.Department)" `
        -Shared `
        -ShareName $p.Name `
        -Published
    
    Write-Host "[+] Добавлен: $($p.Name) ($($p.IP))" -ForegroundColor Green
}

# Проверяем
Get-Printer -ComputerName localhost | 
  Select-Object Name, Shared, Published, Location |
  Format-Table -AutoSize

# Все 40 принтеров добавлены, расшарены и опубликованы в AD

Параметр -Published публикует принтер в Active Directory — пользователи могут искать принтеры по расположению, этажу и названию через стандартный поиск Windows.

GPO-развёртывание принтеров по отделам

Главная задача — автоматическое назначение принтеров по принадлежности к отделу. Юрист на 2-м этаже должен видеть только принтеры 2-го этажа, а бухгалтерия — свой цветной Canon для отчётов.

Создание GPO для каждого этажа и отдела

# PowerShell — создание GPO для развёртывания принтеров

# GPO для 1-го этажа
New-GPO -Name "Printers-Floor1" -Comment "Принтеры 1-го этажа"
New-GPLink -Name "Printers-Floor1" -Target "OU=Floor1,OU=Users,DC=pravogroup,DC=local"

# GPO для 2-го этажа
New-GPO -Name "Printers-Floor2" -Comment "Принтеры 2-го этажа"
New-GPLink -Name "Printers-Floor2" -Target "OU=Floor2,OU=Users,DC=pravogroup,DC=local"

# GPO для 3-го этажа
New-GPO -Name "Printers-Floor3" -Comment "Принтеры 3-го этажа"
New-GPLink -Name "Printers-Floor3" -Target "OU=Floor3,OU=Users,DC=pravogroup,DC=local"

# Назначение принтеров в GPO через User Configuration
# Group Policy Management -> GPO -> User Configuration
# -> Preferences -> Control Panel Settings -> Printers
# -> New -> Shared Printer
#   Action: Create
#   Share path: \\print-srv\HP-M404-1F-Reception
#   Set this printer as default: Yes (для ближайшего)
#   Common tab -> Item-level targeting -> Security Group

# Пример назначения принтера по умолчанию через PowerShell
# (для User GPP Printer через Registry)
$gpoName = "Printers-Floor2"
$printerPath = "\\print-srv\Kyocera-M2040-2F-Docs"

# Создаём GPP Printer entry через GPMC
# User Configuration → Preferences → Control Panel → Printers
# Action: Replace
# Shared path: \\print-srv\Kyocera-M2040-2F-Docs
# Default: Yes
# Item-Level Targeting: OU = Floor2

Каждый GPO содержит 3–5 принтеров соответствующего этажа. При входе пользователя принтеры автоматически подключаются — без ручных действий, без звонков в ИТ-отдел. Принтер по умолчанию — ближайший к рабочему месту.

Point and Print Restrictions

После обновлений безопасности Windows (PrintNightmare, CVE-2021-34527) Microsoft ужесточила политики Point and Print. Без правильной настройки пользователи не могут подключать принтеры с сервера:

# GPO: Point and Print Restrictions
# Computer Configuration → Administrative Templates → Printers

# 1. "Point and Print Restrictions" — Enabled
#    Users can only point and print to these servers:
#    print-srv.pravogroup.local
#    
#    When installing drivers for a new connection:
#    Do not show warning or elevation prompt
#    
#    When updating drivers for an existing connection:
#    Do not show warning or elevation prompt

# 2. "Package Point and Print - Approved servers"
#    Enabled: print-srv.pravogroup.local

# 3. Разрешаем автоматическую установку драйверов
# Computer Configuration → Administrative Templates → System
# → Driver Installation
# "Allow non-administrators to install drivers for these
#  device setup classes" — Enabled
#  GUID: {4d36e979-e325-11ce-bfc1-08002be10318}  (Printers)

# Применяем GPO
gpupdate /force /target:computer

# Проверяем применение
gpresult /r /scope:computer | Select-String -Pattern "Print"

Критически важно указать FQDN сервера печати в списке доверенных серверов. Без этого каждое подключение принтера будет требовать ввод пароля администратора — а для 300 юристов это неприемлемо.

PaperCut: учёт, квоты и контроль расходов на печать

Юридический холдинг ежемесячно тратил на печать более 180 000 рублей — тонер, бумага, обслуживание. При этом никто не знал, кто сколько печатает. Мы внедрили PaperCut MF для учёта и контроля.

Установка и настройка PaperCut MF

# PaperCut MF устанавливается на сервер печати
# Скачиваем с https://www.papercut.com/products/mf/
# Запускаем установщик — стандартный Windows Installer

# После установки — веб-интерфейс на https://print-srv:9192/admin

# Настройка через PowerShell (PaperCut CLI)
# Путь: C:\Program Files\PaperCut MF\server\bin\win

# Импорт пользователей из Active Directory
server-command.exe sync-group-and-shared-account-data

# Настройка квот по отделам
# Администрация: PaperCut Admin → Groups → Юристы
#   Quota: 500 страниц/месяц (ч/б) + 50 страниц (цвет)
# Группа: Секретариат
#   Quota: 2000 страниц/месяц (ч/б) + 200 страниц (цвет)
# Группа: Руководство
#   Quota: без ограничений

# Стоимость печати (для внутреннего учёта)
# Ч/б A4: 1.5 руб/стр
# Цвет A4: 8 руб/стр
# Двусторонняя печать: скидка 30%

# Настраиваем popup-подтверждение для цветной печати
# Options → General → Print popup
# "Вы отправляете цветную печать. Стоимость: {COST} руб.
#  Переключить на ч/б? [Да] [Нет]"

# Включаем принудительную двустороннюю печать
# Printers → HP-M404-1F-Reception → Scripting
# Default: force duplex for jobs > 3 pages
function printJobHook(inputs, actions) {
    if (inputs.job.totalPages > 3 && !inputs.job.isDuplex) {
        actions.job.setDuplex(true);
        actions.log.info("Forced duplex for job > 3 pages");
    }
}

Отчёты и аналитика печати

PaperCut предоставляет детальную аналитику, которая помогла «ПравоГрупп» оптимизировать расходы:

# Пример отчёта за первый месяц:
# Общий объём печати: 47 230 страниц
# Цветная печать: 8 412 страниц (17.8%)
# Двусторонняя: 31 890 страниц (67.5%) — после включения auto-duplex
# Топ-5 пользователей:
#   1. Иванова О.А. (секретарь)    — 4 230 стр
#   2. Петров А.С. (юрист)         — 2 180 стр
#   3. Сидоров К.В. (бухгалтерия)  — 1 890 стр
#   4. Козлова М.И. (юрист)        — 1 540 стр
#   5. Новиков Д.А. (секретарь)    — 1 320 стр

# Экономия от auto-duplex за месяц:
# ~15 000 страниц × 0.5 руб (бумага) = 7 500 руб/месяц
# Экономия от popup цветной печати:
# ~3 000 переключений на ч/б × 6.5 руб = 19 500 руб/месяц

# Настройка email-отчётов руководству
# PaperCut Admin → Reports → Scheduled Reports
# Monthly Print Summary → управляющему партнёру
# Department Breakdown → финансовому директору

Первый месяц работы PaperCut показал, что 30% цветной печати была случайной — юристы не замечали, что принтер по умолчанию цветной. Popup-подтверждение решило проблему без запретов.

Мониторинг и troubleshooting спулера

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

SNMP-мониторинг расходных материалов

Проактивный мониторинг расходных материалов избавляет от ситуаций «тонер кончился, срочно нужно распечатать договор для клиента». Мы настроили скрипт, который опрашивает все 40 принтеров по SNMP и оповещает АХО заранее — когда тонер опускается ниже 15%. Административно-хозяйственный отдел успевает заказать картридж до того, как он закончится полностью:

# PowerShell — скрипт мониторинга тонера через SNMP
# Запускается по расписанию Task Scheduler каждые 6 часов

$printers = Import-Csv "C:\Monitoring\printers.csv"
$alertThreshold = 15  # процент тонера для оповещения

foreach ($p in $printers) {
    # SNMP OID для уровня тонера (стандарт RFC 3805)
    # 1.3.6.1.2.1.43.11.1.1.9.1.1 — текущий уровень
    # 1.3.6.1.2.1.43.11.1.1.8.1.1 — максимальный уровень
    
    $currentLevel = (Get-SnmpData -IP $p.IP -OID "1.3.6.1.2.1.43.11.1.1.9.1.1" `
        -Community "public").Data
    $maxLevel = (Get-SnmpData -IP $p.IP -OID "1.3.6.1.2.1.43.11.1.1.8.1.1" `
        -Community "public").Data
    
    if ($maxLevel -gt 0) {
        $percent = [math]::Round(($currentLevel / $maxLevel) * 100)
        
        if ($percent -le $alertThreshold) {
            # Отправляем email АХО
            $body = "Принтер $($p.Name) ($($p.Location)): тонер $percent%.`nТребуется замена картриджа."
            Send-MailMessage -To "aho@pravogroup.ru" `
                -From "print-monitoring@pravogroup.ru" `
                -Subject "[Принтер] Низкий уровень тонера: $($p.Name)" `
                -Body $body -SmtpServer "mail.pravogroup.local"
            
            Write-Host "[!] $($p.Name): тонер $percent% — отправлено оповещение" -ForegroundColor Yellow
        }
    }
}

Типичные проблемы спулера и их решение

Мы подготовили для ИТ-отдела «ПравоГрупп» набор скриптов для быстрого решения типичных проблем:

# 1. Очистка зависших заданий печати
function Clear-PrintQueue {
    param([string]$PrinterName = "*")
    
    Get-PrintJob -PrinterName $PrinterName | Remove-PrintJob
    
    # Если не помогло — перезапуск спулера
    Stop-Service -Name Spooler -Force
    # Удаляем файлы из очереди
    Remove-Item "$env:SystemRoot\System32\spool\PRINTERS\*" -Force
    Start-Service -Name Spooler
    Write-Host "Спулер перезапущен, очередь очищена" -ForegroundColor Green
}

# 2. Диагностика подключения к принтеру
function Test-PrinterConnection {
    param([string]$IP)
    
    # Ping
    $ping = Test-Connection -ComputerName $IP -Count 2 -Quiet
    Write-Host "Ping: $(if($ping){'OK'}else{'FAIL'})" -ForegroundColor $(if($ping){'Green'}else{'Red'})
    
    # Порт 9100 (RAW printing)
    $tcp = Test-NetConnection -ComputerName $IP -Port 9100
    Write-Host "Port 9100 (RAW): $(if($tcp.TcpTestSucceeded){'OK'}else{'FAIL'})"
    
    # Порт 631 (IPP)
    $ipp = Test-NetConnection -ComputerName $IP -Port 631
    Write-Host "Port 631 (IPP): $(if($ipp.TcpTestSucceeded){'OK'}else{'FAIL'})"
    
    # SNMP (статус принтера)
    $status = Get-SnmpData -IP $IP -OID "1.3.6.1.2.1.25.3.5.1.1.1" -Community "public"
    $statusMap = @{1='Other';2='Unknown';3='Idle';4='Printing';5='Warmup'}
    Write-Host "Статус: $($statusMap[[int]$status.Data])"
}

# 3. Массовая переустановка принтеров на рабочей станции
function Reset-UserPrinters {
    Get-Printer | Where-Object {$_.Type -eq 'Connection'} | Remove-Printer
    gpupdate /force /target:user
    Write-Host "Принтеры удалены. GPO переприменено. Перелогиньтесь." -ForegroundColor Yellow
}

Результаты внедрения: цифры и выводы

Проект централизации печати для «ПравоГрупп» занял 2 недели — неделя на настройку сервера и GPO, неделя на миграцию и тестирование.

Ключевые метрики

МетрикаДоПосле
Время подключения принтера новому сотруднику30–40 минут (вручную)0 минут (GPO автоматически)
Обращения в ИТ по проблемам печати (в месяц)45–60 заявок5–8 заявок
Версий драйверов на сервере37 разных3 универсальных
Расходы на печать (в месяц)~180 000 ₽~125 000 ₽ (−30%)
Доля двусторонней печати12%68%
Доля ненужной цветной печати~30%~8%
Время диагностики проблемы с принтером15–30 минут2–3 минуты (скрипты)

Рекомендации по развитию

По итогам проекта мы предложили «ПравоГрупп» дорожную карту развития инфраструктуры печати на ближайшие 12 месяцев:

  • Microsoft Universal Print — облачное решение для печати, актуально для удалённых сотрудников, работающих через VPN. Принтеры становятся доступны без VPN-подключения к серверу печати. Подписка включена в Microsoft 365 E3/E5.
  • Secure Print (Pull Printing) — документ печатается только после аутентификации на принтере (карта, PIN-код, QR-код). Критично для юридического холдинга, где конфиденциальность документов — абсолютный приоритет. Забытые на принтере конфиденциальные документы — типичный инцидент в юридических компаниях.
  • OCR и электронный документооборот — интеграция сканирования МФУ с DMS для сокращения объёмов печати. По нашему опыту, внедрение электронного документооборота уменьшает печать ещё на 20–30%.
  • Замена устаревших моделей — стандартизация парка принтеров до 2–3 моделей одного производителя. Это упростит закупку расходных материалов и обслуживание. Рекомендуем Kyocera ECOSYS — низкая стоимость печати и надёжность.

Централизованная печать через Print Server и GPO — базовая практика для любой компании с более чем 10 принтерами. Без неё ИТ-отдел тонет в рутинных заявках, а бизнес переплачивает за расходные материалы. Экономия «ПравоГрупп» составила 660 000 рублей в год только на расходных материалах — проект окупился за первый месяц.

Часто задаваемые вопросы

Настоятельно рекомендуется выделять отдельный сервер (физический или виртуальный). Спулер печати — это служба, которая может зависнуть или вызвать утечку памяти. Если она работает на контроллере домена, перезапуск спулера может повлиять на аутентификацию всех пользователей. Виртуальная машина с 4 ГБ RAM достаточна для 50+ принтеров.

После обновлений безопасности CVE-2021-34527 необходимо: 1) настроить Point and Print Restrictions через GPO с указанием FQDN доверенного сервера печати; 2) включить Package Point and Print с указанием того же сервера; 3) убедиться, что драйверы на сервере подписаны. Без этих настроек пользователи будут получать ошибку при подключении принтера.

Каждый универсальный драйвер работает только с принтерами своего производителя. HP Universal Printing PCL 6 покрывает 95% моделей HP. Kyocera Universal Driver поддерживает все ECOSYS и TASKalfa. Canon Generic Plus UFR II работает со всеми imageRUNNER. Для смешанного парка принтеров нужны все три драйвера.

PaperCut MF — платное решение (лицензия на сервер + подключения). Стоимость зависит от количества пользователей, начинается от ~30 000 руб. Есть бесплатная версия PaperCut NG с ограниченным функционалом (без pull printing и MFP-интеграции). Для базового учёта и квот PaperCut NG достаточно. Окупаемость — 2–3 месяца за счёт экономии на расходных материалах.

Нужна помощь с настройкой?

Специалисты АйТи Фреш помогут с внедрением и настройкой — 15+ лет опыта, обслуживание от 15 000 ₽/мес

📞 Связаться с нами
#Print Management Windows Server#GPO развёртывание принтеров#Point and Print Restrictions#драйверы принтеров Windows#PaperCut квоты печати#print server настройка#спулер печати troubleshooting#Universal Print Microsoft