Tags: Print Server · Windows Server 2025 · Impressão · Drivers · Type 4 · PrintNightmare

Print Server no Windows Server 2025: Configurar e Resolver Problemas em 2026

O Print Server continua a ser uma função essencial em PMEs com impressoras partilhadas, multifuncionais e plotters. O Windows Server 2025 não alterou a função, mas mudou o terreno dos drivers: os drivers de impressão de terceiros (v3/v4) deixam de ser publicados no Windows Update — novos drivers só são aprovados caso a caso — e o ranking dá prioridade ao Microsoft IPP Class Driver, com o Windows Protected Print a marcar o fim do modelo baseado em drivers. O PrintNightmare (CVE-2021-34527) continua a definir o modelo de protecção do spooler, e o guia cobre os dois lados: a configuração clássica e o caminho WPP. Este guia cobre instalação, configuração, drivers, segurança e resolução de problemas, com base na documentação oficial Microsoft.

Para complementar, consulta os artigos sobre Windows Admin Center, Windows Server 2025, PowerShell 7, Corrigir Windows Update e Registar e Documentar Tickets.

Conteúdos

1. Instalar a Função Print Server

# Instalar a função Print Server via PowerShell
Install-WindowsFeature -Name Print-Services -IncludeManagementTools

# Verificar instalação
Get-WindowsFeature -Name Print-Services

# Reiniciar se necessário
# Restart-Computer -Force

# Verificar serviço Print Spooler
Get-Service -Name Spooler | Select-Object Name, Status, StartType

# A função instala:
# - Print Spooler service
# - Print Management Console
# - PowerShell print management module

2. Adicionar Impressoras e Drivers

# Adicionar driver de impressão
Add-PrinterDriver -Name "HP Universal Printing PCL 6" -ComputerName printserver01

# Adicionar porta TCP/IP para impressora de rede
Add-PrinterPort -Name "IP_192.168.1.50" -PrinterHostAddress "192.168.1.50"

# Adicionar impressora partilhada
Add-Printer -Name "HP-LaserJet-Andar1" `
  -DriverName "HP Universal Printing PCL 6" `
  -PortName "IP_192.168.1.50" `
  -ShareName "HP-LaserJet-Andar1" `
  -Published $true  # Publica no AD

# Verificar impressoras instaladas
Get-Printer | Select-Object Name, DriverName, PortName, Shared, Published

# Verificar portas
Get-PrinterPort | Select-Object Name, PrinterHostAddress

# Verificar drivers
Get-PrinterDriver | Select-Object Name, PrinterEnvironment, DriverVersion

3. Drivers Type 4 vs Type 3

A Microsoft introduziu os Type 4 drivers no Windows 8 / Server 2012. São mais isolados, não precisam de processos de instalação e são mais seguros. No entanto, muitos fabricantes continuam a fornecer apenas Type 3.

Característica Type 3 (V3) Type 4 (V4)
Isolamento de processo Parcial Total (sandboxed)
Instalação no cliente Copia ficheiros Sem cópia (usa driver do servidor)
PrintNightmare Vulnerável (se não patched) Reduz o risco, não dispensa patches
Configurações avançadas Sim (UI completa) Limitada (constraints)
Compatibilidade Todos os fabricantes Fabricantes modernos
Recomendado Se Type 4 não disponível Sim (prioridade)

💡 Dica: No Windows Server 2025, o suporte Type 4 é a prioridade. Sempre que possível, usa drivers Type 4 do fabricante. Se o fabricante não fornecer Type 4, usa o driver universal (HP Universal, Xerox Global, Canon Generic) em modo Type 4.

4. Deploy de Impressoras via GPO

# Deploy de impressoras via GPO (Group Policy)

# 1. No GPMC (Group Policy Management Console):
# Computer Configuration > Policies > Windows Settings >
# Deployed Printers > Add Printer

# OU via User Configuration:
# User Configuration > Preferences > Control Panel Settings > Printers

# 2. Para deploy por grupo de segurança:
# User Configuration > Preferences > Control Panel Settings > Printers
# - New > Shared Printer
# - Path: \\printserver01\HP-LaserJet-Andar1
# - Item-level targeting: Security Group = "Andar 1 Users"

# 3. Para deploy por OU (computador):
# Computer Configuration > Preferences > Control Panel Settings > Printers
# - New > TCP/IP Printer
# - IP: 192.168.1.50
# - Driver: "HP Universal Printing PCL 6"
# - Item-level targeting: OU = "Computadores Andar 1"

# Via PowerShell (deploy remoto):
# Instalar impressora num computador remoto
Invoke-Command -ComputerName WS-001 -ScriptBlock {
    Add-Printer -ConnectionName "\\printserver01\HP-LaserJet-Andar1"
}

# Verificar impressoras instaladas num computador remoto
Invoke-Command -ComputerName WS-001 -ScriptBlock {
    Get-Printer | Select-Object Name, Shared, Published
}

5. Gerir Impressoras com PowerShell

# Listar todas as impressoras do servidor
Get-Printer -ComputerName printserver01 | Format-Table Name, DriverName, PortName, Shared -AutoSize

# Listar todas as impressoras de todos os clientes
Get-ADComputer -Filter {OperatingSystem -like "*Windows 11*"} | ForEach-Object {
    $printers = Get-Printer -ComputerName $_.Name -ErrorAction SilentlyContinue
    if ($printers) {
        [PSCustomObject]@{
            Computer = $_.Name
            Count = $printers.Count
            Names = ($printers.Name -join ", ")
        }
    }
} | Format-Table -AutoSize

# Renomear impressora
Rename-Printer -Name "HP-LaserJet-Andar1" -NewName "HP-LJ-Andar1-Recepcao"

# Definir impressora padrão num cliente
Invoke-Command -ComputerName WS-001 -ScriptBlock {
    Set-Printer -Name "HP-LJ-Andar1-Recepcao" -Default $true
}

# Remover impressora
Remove-Printer -Name "HP-LaserJet-Velho"

# Limpar fila de impressão
Get-PrintJob -PrinterName "HP-LJ-Andar1-Recepcao" | Remove-PrintJob

# Verificar estado da fila
Get-PrintJob -PrinterName "HP-LJ-Andar1-Recepcao" | Select-Object Id, DocumentName, JobStatus, TotalPages

6. PrintNightmare: Proteger o Servidor

O PrintNightmare (CVE-2021-34527) é uma vulnerabilidade crítica que permite execução remota de código através do Print Spooler. Mesmo com patches, há medidas adicionais recomendadas.

⚠ Aviso Crítico: Nunca instales o Print Server num Controlador de Domínio. O Print Spooler em DCs é um vector de escalação de privilégios. Usa um servidor membro dedicado.

# Protecções contra PrintNightmare

# 1. Verificar se o patch está instalado
Get-HotFix | Where-Object { $_.HotFixID -like "*KB500*"} | Select-Object HotFixID, InstalledOn

# 2. Restringir who can install printer drivers via GPO
# Computer Configuration > Administrative Templates > Printers >
# "Limits print driver installation to Administrators" = Enabled

# 3. Verificar registry key de protecção
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint" `
  -ErrorAction SilentlyContinue

# Deve ter:
#   RestrictDriverInstallationToAdministrators = 1

# 4. desativar PointAndPrint se não necessário
# GPO: Computer Configuration > Administrative Templates > Printers >
# "Point and Print Restrictions" = Enabled
#   - Users can only point and print to these servers: printserver01.empresa.pt
#   - "When installing drivers for a new connection": Show warning and elevation prompt
#   - "When updating drivers for an existing connection": Show warning and elevation prompt
#   (Do not show warning or elevation prompt = o default pré-Agosto/2021 que causou o CVE-2021-34481)

# 5. Verificar que o Spooler não está em DCs
Get-ADDomainController | ForEach-Object {
    $spooler = Get-Service -Name Spooler -ComputerName $_.HostName
    [PSCustomObject]@{
        DC = $_.HostName
        SpoolerStatus = $spooler.Status
        StartType = $spooler.StartType
    }
} | Format-Table

# Se o Spooler estiver ativo em DCs e não for necessário:
# Invoke-Command -ComputerName dc01 -ScriptBlock {
#     Stop-Service -Name Spooler -Force
#     Set-Service -Name Spooler -StartupType Disabled
# }

7. Problemas de Spooler

# Reiniciar Print Spooler
Restart-Service -Name Spooler -Force

# Limpar ficheiros de spool pendurados
Stop-Service -Name Spooler -Force
Remove-Item -Path "C:\Windows\System32\spool\PRINTERS\*.*" -Force -Recurse
Start-Service -Name Spooler

# Verificar eventos do Spooler
Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 20 |
  Select-Object TimeCreated, Id, LevelDisplayName, Message |
  Format-Table -Wrap

# Verificar se há ficheiros pendurados
Get-ChildItem "C:\Windows\System32\spool\PRINTERS" | Measure-Object | Select-Object Count

# Problemas comuns de Spooler:
# 1. Ficheiros .SHD e .SPL pendurados -> limpar directoria PRINTERS
# 2. Driver incompatível -> remover driver problemático
# 3. Porta TCP/IP errada -> recriar porta
# 4. Serviço crashed -> reiniciar
# 5. Memória insuficiente -> verificar RAM do servidor

8. Drivers em Controlador de Domínio

O problema clássico: quando promoves um servidor com Print Server a Controlador de Domínio, os drivers Type 3 deixam de funcionar correctamente porque o erro “Fail to print on Server when promoted to DC” (documentado pela Microsoft).

# Verificar se o servidor é DC
$role = (Get-WmiObject Win32_ComputerSystem).DomainRole
# 0 = Standalone, 1 = Member, 4 = Backup DC, 5 = Primary DC

if ($role -ge 4) {
    Write-Warning "Este servidor é um DC. Print Server em DC NÃO é recomendado."
    Write-Warning "Drivers Type 3 podem falhar. Migrar para servidor membro."
}

# Se já tens Print Server em DC e precisas de migrar:
# 1. Instalar Print Server num servidor membro
# 2. Exportar impressoras do DC
# PrintBRM.exe (não há Export-Printer/Import-Printer — a migração oficial é o PrintBRM)
PrintBrm.exe -S \\dc01 -B -F "C:\Temp\printers.printerExport"

# 3. Importar no novo servidor
PrintBrm.exe -S \\printserver01 -R -F "C:\Temp\printers.printerExport"

# 4. actualizar GPO para apontar para novo servidor
# 5. Desativar Print Spooler no DC

9. Impressoras de Rede vs Partilhadas

Aspecto Impressora Partilhada Impressora de Rede
Ligação Via servidor (\\server\printer) Directa TCP/IP
Driver No servidor No cliente
Gestão centralizada Sim Não
Auditoria Sim (no servidor) Limitada
Deploy via GPO Sim Sim (TCP/IP)
Load no servidor Sim Não

10. Monitorizar e Auditar Impressões

# ativar auditoria de impressão
# 1. No Print Management Console:
#    Print Servers > printserver01 > Properties > Security tab
#    - ativar "Audit object access" para Success

# 2. Via GPO:
# Computer Configuration > Policies > Windows Settings > Security Settings >
# Advanced Audit Policy > Object Access > Audit File System = Success

# 3. Verificar eventos de impressão
Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" |
  Where-Object { $_.Id -eq 307 } |
  Select-Object TimeCreated,
    @{N="User";E={$_.Properties[2].Value}},
    @{N="Printer";E={$_.Properties[3].Value}},
    @{N="Document";E={$_.Properties[4].Value}},
    @{N="Pages";E={$_.Properties[6].Value}} |
  Format-Table -AutoSize

# 4. Relatório de impressões por utilizador (últimos 30 dias)
$events = Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 10000 |
  Where-Object { $_.Id -eq 307 }

$events | ForEach-Object {
    [PSCustomObject]@{
        Date = $_.TimeCreated
        User = $_.Properties[2].Value
        Printer = $_.Properties[3].Value
        Pages = $_.Properties[6].Value
    }
} | Group-Object User |
  Select-Object Name, @{N="TotalPages";E={($_.Group | Measure-Object Pages -Sum).Sum}} |
  Sort-Object TotalPages -Descending |
  Format-Table -AutoSize

11. Drivers Universais (Vendor)

Fabricante Driver Universal Type 4?
HP HP Universal Printing PCL 6 / PS Sim (v7+)
Xerox Xerox Global Print Driver Sim
Canon Canon Generic Plus UFR II Sim
Brother Brother Universal Printer Driver Parcial
Ricoh Ricoh PCL6 Universal Driver Sim

💡 Dica: Usa sempre drivers universais do fabricante em vez de drivers específicos por modelo. Reduz o número de drivers no servidor, simplifica a gestão e garante compatibilidade entre modelos diferentes.

12. Cenário Prático PME

Para uma PME com 30 utilizadores e 5 impressoras (2 andares + 1 multifuncional + 2 plotters):

# 1. Servidor: Windows Server 2025 (membro, NÃO DC)
# 2. Driver: HP Universal Printing PCL 6 (Type 4) para todas as HP
# 3. Driver: Canon Generic Plus para multifuncional Canon

# Deploy:
# - Andar 1: HP-LJ-Andar1 (GPO por security group "Andar1")
# - Andar 2: HP-LJ-Andar2 (GPO por security group "Andar2")
# - Multifuncional: Canon-MF-Recepcao (GPO para todos)
# - Plotter 1: HP-Plotter-Eng (GPO por security group "Engenharia")
# - Plotter 2: HP-Plotter-Arq (GPO por security group "Arquitetura")

# Grupos AD:
#   SG-Print-Andar1
#   SG-Print-Andar2
#   SG-Print-Engenharia
#   SG-Print-Arquitetura

# GPO:
#   GPO-PrintDeploy
#     User Configuration > Preferences > Printers
#     Item-level targeting por security group

13. Problemas Comuns e Soluções

Problema Causa Solução
Driver não instala no cliente Type 3 + PointAndPrint restrito Migrar para Type 4 ou permitir install para admins
Spooler crasha frequentemente Driver incompatível ou memória Remover driver problemático, reiniciar Spooler
Impressora não imprime Porta TCP/IP errada ou offline Verificar IP, recriar porta, ping
Driver falha em DC Print Server em DC (não suportado) Migrar Print Server para servidor membro
Fila de impressão pendurada Ficheiros .SHD/.SPL pendurados Parar Spooler, limpar PRINTERS, reiniciar
Lentidão ao imprimir Driver Type 3 com UI pesada Migrar para Type 4 ou driver universal

14. Checklist de Implementação

  • ☐ Instalar Print Server em servidor membro (NÃO em DC)
  • ☐ Instalar drivers universais Type 4 (prioridade)
  • ☐ Adicionar portas TCP/IP para cada impressora
  • ☐ Adicionar impressoras partilhadas e publicar no AD
  • ☐ Criar grupos de segurança por localização
  • ☐ Configurar GPO de deploy com item-level targeting
  • ☐ ativar protecções PrintNightmare (RestrictDriverInstallation)
  • ☐ Restringir PointAndPrint ao servidor de impressão
  • ☐ ativar auditoria de impressão
  • ☐ Testar deploy num cliente piloto
  • ☐ Verificar impressão em todos os clientes
  • ☐ Documentar topologia de impressoras
  • ☐ Configurar alertas de Spooler (event 808, 4)
  • ☐ Agendar limpeza mensal de ficheiros de spool

15. Windows Protected Print no Print Server

O Windows Protected Print (WPP), disponível no Windows 11 24H2+, é o fim do modelo baseado em drivers: só trabalha com a pilha Windows Ready Print — o Windows fala IPP/Mopria directamente com a impressora — e exclui drivers de terceiros do spooler. Para o Print Server clássico, a leitura prática:

  • O servidor de impressão em si não migra para WPP — as partilhas \\server\printer continuam a usar drivers no servidor; o WPP é do lado do cliente.
  • Um cliente com WPP ligado deixa de poder gerir servidores de impressão — printmanagement.msc e a instalação de impressoras partilhadas deixam de conseguir instalar drivers de terceiros; gerir filas de impressão passa a exigir um cliente com WPP desligado ou a migração do servidor.
  • Para o cliente ligar a uma impressora partilhada com driver, o driver tem de estar aprovado caso a caso no WU — a partir de 15/01/2026 não há novos drivers automáticos e desde 01/07/2026 o ranking prefere o Microsoft IPP Class Driver.

Artigos Relacionados

Baseado na documentação oficial Microsoft sobre Print Services e protecções PrintNightmare. Licença: CC BY-SA 4.0.