- 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
9.0 KiB
🔧 Solução: NoIdle não Inicia Automaticamente Após Reinicialização
❌ Problema
O cliente noidle.exe não permanece ativo em segundo plano após reiniciar a máquina, mesmo após instalação e ativação com a chave de ativação.
✅ Solução Implementada
Foram implementadas 3 camadas de proteção para garantir que o NoIdle inicie automaticamente:
1. Registro do Windows (Método Primário)
- Adiciona entrada em
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - Inicia automaticamente quando o usuário faz login
- Executa com parâmetro
--silentpara rodar em segundo plano
2. Task Scheduler (Método Secundário/Backup)
- Cria tarefa agendada
NoIdle_Monitor - Mais confiável que o Registry
- Reinicia automaticamente se o processo falhar (até 3 tentativas)
- Não para se o computador estiver na bateria
3. Modo Silencioso (Melhoria no Cliente)
- Suporte ao parâmetro
--silentou--minimized - Executa sem interface gráfica
- Não requer interação do usuário
- Roda completamente em segundo plano
🚀 Como Aplicar a Solução
Opção 1: Para Novas Instalações
O cliente atualizado (CLIENTE_CORRIGIDO.py) já configura tudo automaticamente:
- Instale o NoIdle
- Ative com a chave de ativação
- O auto-start será configurado automaticamente
Pronto! O NoIdle agora iniciará automaticamente após reinicialização.
Opção 2: Para Clientes Já Instalados
Se você já tem o NoIdle instalado e ele NÃO está iniciando automaticamente após reinicialização, use um dos scripts abaixo:
Script 1: Configurar Auto-Start (Recomendado)
# Baixe e execute no PowerShell (como usuário normal):
.\CONFIGURAR_AUTOSTART_NOIDLE.ps1
O que este script faz:
- ✅ Configura Registro do Windows
- ✅ Configura Task Scheduler
- ✅ Verifica se já está configurado
- ✅ Pergunta se deseja iniciar agora
Script 2: Verificar e Corrigir Problemas (Diagnóstico Completo)
# Baixe e execute no PowerShell:
.\VERIFICAR_E_CORRIGIR_NOIDLE.ps1
O que este script faz:
- 🔍 Verifica instalação
- 🔍 Verifica configuração (Device ID)
- 🔍 Verifica se está em execução
- 🔍 Verifica auto-start (Registry)
- 🔍 Verifica auto-start (Task Scheduler)
- 🔍 Testa conectividade com API
- 🔍 Verifica Firewall
- 🔍 Verifica logs de erros
- ✅ Corrige automaticamente todos os problemas encontrados
Correção Automática:
.\VERIFICAR_E_CORRIGIR_NOIDLE.ps1 -AutoFix
📋 Verificação Manual
Verificar se o NoIdle está rodando
Get-Process -Name "NoIdle" -ErrorAction SilentlyContinue
Resultado esperado:
- ✅ Se aparecer um processo, está rodando
- ❌ Se não aparecer nada, NÃO está rodando
Verificar auto-start no Registro
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "NoIdle"
Resultado esperado:
NoIdle : "C:\Program Files\NoIdle\NoIdle.exe" --silent
Verificar Task Scheduler
Get-ScheduledTask -TaskName "NoIdle_Monitor" -ErrorAction SilentlyContinue
Resultado esperado:
- ✅
State: ReadyouState: Running - ❌ Se retornar erro, Task Scheduler não está configurado
Testar conectividade com API
Invoke-WebRequest -Uri "https://admin.noidle.tech/api/devices/heartbeat" -Method POST -Body '{"device_id":"TEST"}' -ContentType "application/json"
Resultado esperado:
- ✅
StatusCode: 200= API está acessível - ❌ Erro = Problema de rede/firewall
🔧 Correção Manual (Se os Scripts Falharem)
Passo 1: Configurar Registro do Windows
$RegKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
$ExePath = "C:\Program Files\NoIdle\NoIdle.exe"
$Command = "`"$ExePath`" --silent"
Set-ItemProperty -Path $RegKey -Name "NoIdle" -Value $Command -Type String -Force
Passo 2: Criar Task Scheduler
$ExePath = "C:\Program Files\NoIdle\NoIdle.exe"
$action = New-ScheduledTaskAction -Execute "`"$ExePath`"" -Argument '--silent'
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Limited
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1) -ExecutionTimeLimit (New-TimeSpan -Days 0)
Register-ScheduledTask -TaskName "NoIdle_Monitor" -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Description "Monitora atividades do usuário para o sistema NoIdle" -Force
Passo 3: Iniciar manualmente
Start-Process -FilePath "C:\Program Files\NoIdle\NoIdle.exe" -ArgumentList "--silent" -WindowStyle Hidden
🧪 Como Testar
Teste 1: Iniciar Manualmente
# Parar processo atual (se estiver rodando)
Stop-Process -Name "NoIdle" -Force -ErrorAction SilentlyContinue
# Iniciar em modo silencioso
Start-Process -FilePath "C:\Program Files\NoIdle\NoIdle.exe" -ArgumentList "--silent" -WindowStyle Hidden
# Aguardar 3 segundos
Start-Sleep -Seconds 3
# Verificar se está rodando
Get-Process -Name "NoIdle"
Resultado esperado: Deve aparecer o processo NoIdle.
Teste 2: Testar Após Reinicialização
- Configure o auto-start (usando scripts acima)
- Reinicie o computador
- Faça login no Windows
- Execute:
# Aguardar alguns segundos após login
Start-Sleep -Seconds 10
# Verificar se está rodando
Get-Process -Name "NoIdle"
Resultado esperado: NoIdle deve estar rodando automaticamente.
📊 Logs e Diagnóstico
Verificar logs do Task Scheduler
- Abra o Task Scheduler (Agendador de Tarefas)
- Navegue até:
Task Scheduler Library→NoIdle_Monitor - Clique na aba History (Histórico)
- Procure por erros ou execuções bem-sucedidas
Verificar Event Viewer
# Ver erros relacionados ao NoIdle nos últimos 7 dias
Get-EventLog -LogName Application -Source "*NoIdle*" -After (Get-Date).AddDays(-7) -ErrorAction SilentlyContinue | Where-Object { $_.EntryType -eq "Error" }
🔍 Troubleshooting
Problema: "NoIdle inicia mas fecha imediatamente"
Causa: Provavelmente o Device ID não está configurado.
Solução:
- Execute o NoIdle sem
--silentpela primeira vez - Insira a chave de ativação
- Após ativação, ele criará o arquivo de configuração
- Depois pode usar
--silent
Problema: "Task Scheduler não funciona"
Causa: Pode ser permissão ou política de grupo.
Solução:
- Use apenas o método do Registry (funciona sem admin)
- Verifique se o usuário tem permissão para criar tarefas agendadas
- Consulte o administrador do sistema
Problema: "NoIdle não consegue conectar à API"
Causa: Firewall, proxy ou rede corporativa bloqueando.
Solução:
- Verifique se
https://admin.noidle.techestá acessível - Adicione exceção no firewall
- Configure proxy se necessário
- Contate o administrador de rede
Problema: "Quero remover o auto-start"
Solução:
# Método 1: Usar o script
.\CONFIGURAR_AUTOSTART_NOIDLE.ps1 -Remove
# Método 2: Manual
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "NoIdle"
Unregister-ScheduledTask -TaskName "NoIdle_Monitor" -Confirm:$false
📞 Suporte
Se o problema persistir após seguir todos os passos:
-
Execute o script de diagnóstico e salve a saída:
.\VERIFICAR_E_CORRIGIR_NOIDLE.ps1 | Out-File -FilePath "diagnostico.txt" -
Verifique se o executável está correto:
Get-Item "C:\Program Files\NoIdle\NoIdle.exe" -
Verifique se a configuração existe:
Get-Content "$env:APPDATA\NoIdle\config.json" -
Envie as informações para o suporte.
📚 Arquivos Relacionados
CLIENTE_CORRIGIDO.py- Cliente Python atualizado com modo silenciosoCONFIGURAR_AUTOSTART_NOIDLE.ps1- Script para configurar auto-startVERIFICAR_E_CORRIGIR_NOIDLE.ps1- Script de diagnóstico e correçãoINSTALADOR_POWERSHELL.ps1- Instalador completo
✅ Resumo da Solução
| Componente | Status | Descrição |
|---|---|---|
| Cliente Python | ✅ Atualizado | Suporte a --silent |
| Registry Auto-Start | ✅ Implementado | Método primário |
| Task Scheduler | ✅ Implementado | Método secundário (mais robusto) |
| Script de Configuração | ✅ Criado | CONFIGURAR_AUTOSTART_NOIDLE.ps1 |
| Script de Diagnóstico | ✅ Criado | VERIFICAR_E_CORRIGIR_NOIDLE.ps1 |
| Documentação | ✅ Criada | Este arquivo |
O problema de não iniciar automaticamente após reinicialização está RESOLVIDO! 🎉
Para novos clientes, basta instalar e ativar. Para clientes existentes, executar o script de configuração ou correção.