feat: Implementação completa do NoIdle - Cliente, Backend e Scripts
- 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
This commit is contained in:
63
MONITORAMENTO_LOGON_LOGOFF.md
Normal file
63
MONITORAMENTO_LOGON_LOGOFF.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# 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**:
|
||||
```bash
|
||||
pm2 logs pointcontrol-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.
|
||||
|
||||
Reference in New Issue
Block a user