Files
NoIdle/MONITORAMENTO_LOGON_LOGOFF.md
Sérgio Corrêa 4fab8593ac refactor: Migração completa de PointControl para NoIdle
- Pasta renomeada: /var/www/pointcontrol → /var/www/noidle
- PM2 renomeado: pointcontrol-api → noidle-api
- Package.json backend atualizado
- Package.json frontend atualizado
- Todas as referências de código atualizadas
- Documentação atualizada
- Script de migração executado com sucesso
- Backup criado em /tmp/
- Sistema testado e funcionando

Resolução: Organização completa da estrutura bagunçada
2025-11-16 23:38:59 +00:00

2.3 KiB

Monitoramento de Logon/Logoff do Windows

O que foi corrigido

O cliente agora monitora eventos reais de logon/logoff do Windows usando o Windows Event Log, não apenas quando o NoIdle inicia/fecha.

Como funciona

  1. Monitoramento do Event Log: O cliente lê o log de segurança do Windows a cada 60 segundos
  2. Eventos detectados:
    • Evento 4624: Logon bem-sucedido
    • Evento 4634: Logoff bem-sucedido
    • Evento 4647: Logoff iniciado pelo usuário

Permissões necessárias

⚠️ IMPORTANTE: Para ler o Event Log de segurança, o NoIdle precisa rodar com permissões elevadas ou o usuário precisa ter permissão para ler o log de segurança.

Opção 1: Executar como Administrador (Recomendado)

  1. Clique com botão direito no NoIdle.exe
  2. Selecione "Executar como administrador"
  3. Ou configure para sempre executar como admin:
    • Clique com botão direito → Propriedades → Compatibilidade
    • Marque "Executar este programa como administrador"

Opção 2: Dar permissão ao usuário (Avançado)

Se não quiser executar como admin, pode dar permissão específica:

  1. Abra o Editor de Política de Grupo Local (gpedit.msc)
  2. Navegue até: Configuração do Computador → Configurações do Windows → Configurações de Segurança → Políticas Locais → Atribuição de Direitos do Usuário
  3. Encontre: "Gerar auditorias de segurança"
  4. Adicione o usuário ou grupo que executa o NoIdle

Verificação

Após atualizar o cliente:

  1. Faça logoff do Windows (Win + L, depois logoff)
  2. Faça logon novamente
  3. Verifique os logs do servidor:
    pm2 logs noidle-api --lines 30
    
  4. Procure por:
    🔐 Evento de sessão: logon - [device_id] (username)
    🔐 Evento de sessão: logoff - [device_id] (username)
    

Método alternativo

Se o Event Log não estiver acessível (sem permissões), o cliente usa um método alternativo que detecta mudanças de sessão. Este método é menos preciso, mas ainda funciona.

Dependências

O código usa:

  • win32evtlog: Para ler o Event Log do Windows
  • win32evtlogutil: Para formatar mensagens de eventos

Essas bibliotecas já estão incluídas no pywin32, que deve estar nas dependências do projeto.