Guia de tecnologias

Como desligar remotamente computadores Windows XP a partir de um servidor Linux

• 5 min read • Administração • Atualizado 28 Sep 2025
Desligar Windows XP remotamente desde Linux
Desligar Windows XP remotamente desde 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.

  1. 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”.
  2. 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).
  3. Verifique conectividade. O servidor Linux deve conseguir pingar o IP do cliente: ping x.x.x.x
  4. 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

  1. 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.
  2. Recomenda-se atribuir IPs fixos (ou reservas DHCP) aos computadores do laboratório. Facilita controle e scripts.
  3. 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.linuxforums.org/forum/redhat-fedora-linux-help/60324-remote-shutdown-windows-linux-box.html

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.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE