Cansado de caçar logs no Event Viewer? Veja como automatizar relatórios de Logon/Logoff com PowerShell

Fala pessoal, tudo bem com vocês?
No post de hoje eu vou mostrar como usar PowerShell para gerar relatórios de logon e logoff de usuários no Windows.

Recebi recentemente mensagens de colegas de TI dizendo que estavam com dificuldades para acompanhar os acessos dos usuários em servidores e estações de trabalho. O Event Viewer até guarda tudo, mas vamos combinar: procurar evento por evento é cansativo, manual e nada produtivo.

A boa notícia é que dá para automatizar tudo com PowerShell e ter um relatório claro, pronto para auditorias, segurança ou até para resolver chamados de suporte.

 

Onde estão essas informações?

O Windows registra tudo no Log de Segurança. Para logon e logoff, os eventos principais são:

  • 4624 → Logon realizado com sucesso
  • 4634 → Logoff realizado
  • 4647 → Logoff iniciado pelo próprio usuário

Combinando esses três, conseguimos montar um relatório completo de entradas e saídas.

 

Script em PowerShell – CSV + HTML

Aqui está um script que vai além: ele gera tanto um CSV para análise crua quanto um HTML bem formatado para consulta rápida.

				
					Write-Host "Iniciando coleta de eventos de logon e logoff..." -ForegroundColor Cyan

## aqui você pode alterar para a quantidade de dias e o local de onde salvar
$Dias = 2
$OutputCsv = "C:\Temp\Relatorio-LogonLogoff.csv"
$OutputHtml = "C:\Temp\Relatorio-LogonLogoff.html"

#Pode alterar a quantidade de eventos...
$Events = Get-WinEvent -LogName Security -MaxEvents 100 | Where-Object {
    $_.Id -in 4624,4634,4647 -and $_.TimeCreated -gt (Get-Date).AddDays(-$Dias)
} | Select-Object TimeCreated, Id, @{Name="Usuario";Expression={$_.Properties[5].Value}}, MachineName

# Exporta para CSV
$Events | Export-Csv -Path $OutputCsv -NoTypeInformation -Encoding UTF8

# Exporta para HTML
$Html = $Events | ConvertTo-Html -Property TimeCreated,Id,Usuario,MachineName -Title "Relatório de Logon/Logoff" | Out-String
$Html | Set-Content $OutputHtml -Encoding UTF8

Write-Host "Relatórios gerados com sucesso:" -ForegroundColor Green
Write-Host "CSV: $OutputCsv"
Write-Host "HTML: $OutputHtml"
				
			

Resultado

 CSV – Para quem precisa importar em Excel ou Power BI.
 HTML – Para abrir no navegador, com visual limpo e fácil de entender.

Como evoluir esse script

Esse é só o começo. Você pode levar a automação ainda mais longe:

  • Enviar o HTML por e-mail diariamente usando Send-MailMessage
  • Agendar no Task Scheduler para rodar automaticamente
  • Centralizar logs de vários servidores e gerar relatórios unificados
  • Integrar com SIEM (Microsoft Sentinel, Splunk, etc.

Conclusão

Com algumas linhas de PowerShell, você já transforma um trabalho manual e chato em um relatório automático e organizado. Isso economiza tempo, dá mais controle sobre o ambiente e facilita auditorias de segurança.

Agora quero saber de vocês:
Hoje, como vocês monitoram logon/logoff no ambiente?
Esse tipo de relatório ajudaria no dia a dia da sua equipe?

Deixa aqui nos comentários que vou adorar saber.

Rolar para cima