Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como habilitar o log Microsoft-Windows-PrintService/Operational no Windows

Neste artigo, vamos abordar a importância de habilitar o log Microsoft-Windows-PrintService/Operational no ambiente Windows e como realizar essa tarefa. O log Microsoft-Windows-PrintService/Operational é responsável por registrar eventos relacionados ao serviço de impressão do Windows, fornecendo informações úteis para solução de problemas e monitoramento do sistema.


Exemplos:


1. Habilitando o log Microsoft-Windows-PrintService/Operational via Event Viewer:



  • Abra o Event Viewer (Visualizador de Eventos) no Windows.

  • Navegue até "Logs do Windows" e expanda a pasta "Application and Services Logs" (Aplicativos e Serviços) e, em seguida, "Microsoft" e "Windows".

  • Localize e clique com o botão direito do mouse em "PrintService" (Serviço de Impressão).

  • Selecione "Enable Log" (Habilitar Log) para ativar o registro de eventos do serviço de impressão.


2. Habilitando o log Microsoft-Windows-PrintService/Operational via PowerShell:



  • Abra o PowerShell como administrador.

  • Execute o seguinte comando para habilitar o log:
     wevtutil sl Microsoft-Windows-PrintService/Operational /e:true


3. Habilitando o log Microsoft-Windows-PrintService/Operational via Group Policy:



  • Abra o Editor de Política de Grupo (Group Policy Editor) no Windows.

  • Navegue até "Configuração do Computador" -> "Modelos Administrativos" -> "Componentes do Windows" -> "Serviço de Impressão" -> "Registro de Eventos".

  • Habilite a configuração "Habilitar registro de eventos do Serviço de Impressão".


Script para Verificar e Habilitar o Log PrintService de forma Automatizada
Este script em PowerShell verifica se o log 'Microsoft-Windows-PrintService/Operational' está habilitado e, caso não esteja, ele realiza à sua habilitação:


# Obtém o status atual do log Microsoft-Windows-PrintService/Operational
$printenable = wevtutil gl Microsoft-Windows-PrintService/Operational | Select-String "enabled"

# Verifica se "enabled: true" está presente na saída
if ($printenable -match "enabled:\s+true") {
Write-Host "O log já está configurado."
} else {
Write-Host "O log não está configurado. Configurando agora..."
# Habilita o log
wevtutil sl Microsoft-Windows-PrintService/Operational /e:true
Write-Host "Log configurado com sucesso."
}

Explicação:


1. Select-String e Match:



  • Select-String "enabled" extrai a linha contendo a palavra "enabled" da saída do comando wevtutil gl.

  • O operador -match é usado para verificar se a linha contém "enabled: true". O \s+ assegura que espaços entre "enabled:" e "true" sejam ignorados, o que torna o script mais robusto.


2. Ações Condicional:



  • Se o log já estiver habilitado (enabled: true), ele exibe uma mensagem informando que já está configurado.

  • Se não estiver habilitado, ele procede para habilitar o log com o comando wevtutil sl e então confirma que a ação foi realizada.


Distribuição do Script via Intune na Forma de Remediação


O script abaixo é parecido com o anterior, mas foi adicionada mais uma função para coletar os logs e assim proporcionar um melhor acompanhamento da execução. Se você pretende distribuir este script como uma solução de remediação no Intune, já o configuramos para você. Seguem abaixo os dois scripts para publicação via Intune: "DetectLogStatus.ps1" e "EnablePrintLog.ps1".":


Script de Detecção DetectLogStatus.ps1



# Caminho para o arquivo de log
$logPath = "C:\Windows\Logs\PrintServiceDetectionLog.txt"

function LogMessage {
param([string]$Message)
Add-Content -Path $logPath -Value "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") - $Message"
}

# Verifica se a pasta de logs existe, se não, cria
if (-not (Test-Path (Split-Path -Path $logPath -Parent))) {
New-Item -ItemType Directory -Path (Split-Path -Path $logPath -Parent)
}

try {
$printenable = wevtutil gl Microsoft-Windows-PrintService/Operational | Select-String "enabled"
if ($printenable -match "enabled:\s+true") {
LogMessage "O log já está configurado."
exit 0
} else {
LogMessage "O log não está configurado."
exit 1
}
} catch {
LogMessage "Erro ao verificar o status do log: $_"
exit 1
}

Script de Remediação EnablePrintLog.ps1



# Caminho para o arquivo de log
$logPath = "C:\Windows\Logs\PrintServiceRemediationLog.txt"

function LogMessage {
param([string]$Message)
Add-Content -Path $logPath -Value "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") - $Message"
}

# Verifica se a pasta de logs existe, se não, cria
if (-not (Test-Path (Split-Path -Path $logPath -Parent))) {
New-Item -ItemType Directory -Path (Split-Path -Path $logPath -Parent)
}

try {
wevtutil sl Microsoft-Windows-PrintService/Operational /e:true
LogMessage "Log do serviço de impressão habilitado com sucesso."
exit 0
} catch {
LogMessage "Falha ao habilitar o log do serviço de impressão: $_"
exit 1
}

Explicações:
Função LogMessage: Ambos os scripts utilizam uma função chamada "LogMessage" para registrar mensagens de log com um carimbo de data/hora em um arquivo de log especificado. Isso é útil para manter registros detalhados das operações do script.
Verificação de Pasta: Antes de tentarem escrever no arquivo de log, os scripts verificam se o diretório onde o arquivo será salvo existe. Caso não exista, ele é criado. Isso evita erros na escrita do arquivo.
Registro de Erros e Atividades: Cada ação importante, como a detecção do estado de configuração ou a execução da habilitação do log, é registrada no arquivo de log, fornecendo uma trilha auditável para revisão posterior.


To share Download PDF