- Cliente Windows com modo silencioso e auto-start robusto - Backend Node.js + API REST - Frontend Next.js + Dashboard - Scripts PowerShell de configuração e diagnóstico - Documentação completa - Build scripts para Windows e Linux - Solução de auto-start após reinicialização Resolução do problema: Cliente não voltava ativo após reboot Solução: Registro do Windows + Task Scheduler + Modo silencioso
2.3 KiB
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
- Monitoramento do Event Log: O cliente lê o log de segurança do Windows a cada 60 segundos
- 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)
- Clique com botão direito no
NoIdle.exe - Selecione "Executar como administrador"
- 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:
- Abra o Editor de Política de Grupo Local (
gpedit.msc) - 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
- Encontre: "Gerar auditorias de segurança"
- Adicione o usuário ou grupo que executa o NoIdle
Verificação
Após atualizar o cliente:
- Faça logoff do Windows (Win + L, depois logoff)
- Faça logon novamente
- Verifique os logs do servidor:
pm2 logs pointcontrol-api --lines 30 - 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 Windowswin32evtlogutil: Para formatar mensagens de eventos
Essas bibliotecas já estão incluídas no pywin32, que deve estar nas dependências do projeto.