Como desligar remotamente computadores Windows XP a partir de um servidor Linux
Contexto
Por motivos de economia, um laboratório escolar precisa desligar automaticamente computadores Windows XP à noite. O ambiente descrito possui um servidor Red Hat Enterprise Linux 5 (RHEL5) e 29 máquinas Dell Optiplex 745 com Windows XP SP3 que servem como hosts para VMWare Server. A solução proposta usa Samba no servidor Linux para executar um desligamento remoto via RPC.
Pré-requisitos no Windows XP
Siga estes passos em cada máquina cliente Windows XP que deverá ser desligada remotamente.
- Desative o Compartilhamento Simples de Arquivos. No Explorador de Arquivos, vá em Este Computador > Ferramentas > Opções de Pasta > Exibir e DESMARQUE “Usar compartilhamento simples de arquivos”.
- Configure o Firewall do Windows. Em Painel de Controle > Centro de Segurança > Firewall do Windows:
- Na aba Exceções, ATIVE “Compartilhamento de Arquivos e Impressoras”.
- Na aba Avançado > Configurações ICMP, ATIVE “Permitir requisições de eco recebidas” (permitir ping).
- Verifique conectividade. O servidor Linux deve conseguir pingar o IP do cliente: ping x.x.x.x
- Ajuste políticas locais se necessário. O direito de forçar um desligamento remoto pertence, por padrão, a membros do grupo Administradores. Para alterar: gpedit.msc > Configuração do Computador > Configurações do Windows > Configurações de Segurança > Políticas Locais > Atribuição de Direitos de Usuário > Forçar desligamento por um sistema remoto. Adicione o usuário/grupo desejado.
Importante: Windows XP é um sistema sem suporte. Em ambientes de produção, considere atualizar os clientes por motivos de segurança.
Pré-requisitos no servidor Linux
- Instale e configure o Samba corretamente. O Samba fornece o utilitário net que chama procedimentos RPC no Windows. No exemplo, o RHEL5 atua também como servidor WINS para o workgroup.
- Recomenda-se atribuir IPs fixos (ou reservas DHCP) aos computadores do laboratório. Facilita controle e scripts.
- Configure resolução de nomes com BIND ou entradas /etc/hosts para facilitar administração.
Comando para desligar remotamente
Use o utilitário net do Samba. Exemplo de uso:
net rpc SHUTDOWN -C "enter a comment to display at shutdown" -f -I x.x.x.x -U username%password
Explicação rápida dos parâmetros:
- SHUTDOWN: ação RPC para desligar.
- -C “comentário”: texto mostrado para o usuário no Windows antes do desligamento.
- -f: força o desligamento (força fechamento de programas).
- -I x.x.x.x: endereço IP do cliente remoto.
- -U username%password: credencial de um membro do grupo Administradores no Windows.
Nota de segurança: o parâmetro -U com senha em linha de comando expõe credenciais no histórico do shell e na lista de processos. Proteja o uso conforme as recomendações de segurança abaixo.
Exemplo de script e crontab
Exemplo de script simples: /usr/local/bin/shutdown-windows.sh
#!/bin/bash
CREDFILE="/root/.wincreds" # arquivo com usuário e senha, permissão 600
if [ ! -r "$CREDFILE" ]; then
echo "Arquivo de credenciais não encontrado ou inacessível"
exit 1
fi
CRED=$(cat "$CREDFILE")
# lista de IPs ou hostnames, uma por linha
CLIENTS=(
192.168.1.101
192.168.1.102
192.168.1.103
)
for ip in "${CLIENTS[@]}"; do
echo "Desligando $ip"
net rpc SHUTDOWN -C "Desligamento noturno agendado" -f -I $ip -U $CRED
done
Crontab para executar todo dia às 23:00 como root:
0 23 * * * /usr/local/bin/shutdown-windows.sh >> /var/log/shutdown-windows.log 2>&1
Recomendações para o arquivo de credenciais (/root/.wincreds): coloque apenas username%password em uma linha, defina chmod 600 e restrinja acesso a root.
Testes e solução de problemas
- Ping: ping x.x.x.x — confirme resposta ICMP.
- Teste Samba RPC: net rpc SHUTDOWN -I x.x.x.x -U usuario%senha (ver saída para mensagens de erro).
- Listagem SMB: smbclient -L //x.x.x.x -U usuario — confirma que a conexão SMB funciona.
- Logs: verifique /var/log/samba/ e o log de saída do seu script (ex.: /var/log/shutdown-windows.log).
- Mensagens comuns:
- Erro de autenticação: verifique usuário/senha e se o usuário tem privilégios de Administrador.
- Tempo esgotado/sem resposta: verifique firewall, regras de rede e se o serviço RPC está acessível.
Quando uma máquina não responder, tente reiniciar serviços de rede no cliente ou verifique a configuração do Firewall do Windows.
Segurança e boas práticas
- Nunca armazene credenciais em texto acessível a usuários não confiáveis. Use arquivo com permissão 600 e proprietário root.
- Use contas de serviço limitadas: crie um usuário Windows com senha forte e conceda apenas o direito “Forçar desligamento por um sistema remoto” em vez de fornecer privilégios de Administrador total.
- Restrinja acesso de rede: permita conexões RPC-SMB apenas a partir do servidor de gerenciamento (firewall de borda/ACLs).
- Mantenha o servidor Linux atualizado e monitore logs para detectar acessos indevidos.
- Considere alternativas mais seguras para ambientes atuais, como gerenciamento via solução de inventário/controles modernos que suportem canais criptografados.
Quando essa abordagem pode falhar
- Firewall local bloqueando portas RPC/SMB.
- Compartilhamento simples habilitado impede autenticação necessária.
- Computador desconectado da rede ou desligado manualmente.
- Políticas de grupo ou antivírus que bloqueiam solicitações RPC.
- Windows XP sem suporte e com falhas que inviabilizam o serviço.
Checklist de implantação
Para administradores de rede:
- Definir IPs fixos ou reservas DHCP para clientes.
- Configurar Samba e testar utilitário net no servidor.
- Criar arquivo de credenciais protegido com chmod 600.
- Testar comando net rpc em cada cliente manualmente.
- Criar e testar script de desligamento e rotinas cron.
- Monitorar logs e ajustar firewall.
Para professores/operadores:
- Garantir que máquinas não tenham trabalhos críticos em andamento antes do horário de desligamento.
- Avisar alunos sobre agendamento de desligamento.
Pequeno glossário
- Samba: implementação livre do protocolo SMB/CIFS para interoperabilidade com Windows.
- RPC: Remote Procedure Call, mecanismo usado para invocar ações remotas (ex.: desligamento).
- WINS: serviço de resolução de nomes NetBIOS.
- BIND: servidor DNS amplamente usado no Linux.
- DHCP: serviço que atribui endereços IP dinamicamente.
Recursos e leituras adicionais
http://www.lgr.ca/blog/2008/04/shutdown-windows-from-linux.html
http://landofthefreeish.com/linux/howto-remote-shutdown-of-a-windows-computer-from-linux/
http://blog.beausanders.com/?q=node/8
Resumo
Este método usa Samba no servidor Linux para disparar um desligamento remoto em máquinas Windows XP via net rpc. Verifique pré-requisitos no Windows (compartilhamento simples, firewall, políticas) e no Linux (Samba, DNS/DHCP). Proteja credenciais, teste manualmente e agende com crontab.
Importante: Windows XP é obsoleto. Planeje migração para sistemas suportados para melhorar segurança.
Materiais semelhantes

Converter Spotify para MP3 com TuneFab
RAID com mdadm e LVM: criar e migrar

Como criar um aplicativo em 2023 — Guia prático
Desligar Windows XP remotamente desde Linux

Como usar o ChatGPT no Apple Watch
