Мы выделили виртуальную машину (4 vCPU, 8 ГБ RAM, 100 ГБ SSD) для роли сервера печати. Отдельный сервер гарантирует, что проблемы со спулером не повлияют на контроллер домена.
# 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. Это радикально упрощает администрирование.
Все 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.