Files
NoIdle/MONITORAMENTO_LOGON_LOGOFF.md

64 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

# 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 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.