Só para lhe dar uma resposta com base na sua pergunta: "Desligar um PC baseado apenas no endereço IP é impossível"
Você pode tornar isso possível disponibilizando seus desktops ou shells pela rede. RDP (windows) / SSH ou VNC (linux) serve.
Se tivermos uma coleção de computadores Windows e Linux em uma LAN, é possível desligar um computador com um endereço IP específico, usando o shell do Linux?
Suponha que eu não tenha ssh ou telnet rodando nos PCs. Eu tenho a senha de root para todos os computadores.
Só para lhe dar uma resposta com base na sua pergunta: "Desligar um PC baseado apenas no endereço IP é impossível"
Você pode tornar isso possível disponibilizando seus desktops ou shells pela rede. RDP (windows) / SSH ou VNC (linux) serve.
Use cartões fora da banda (se os computadores ainda não tiverem).
Eles não são cartões baratos, mas você atribui um endereço IP a cada cartão e pode ligar / desligar / conectar / kvm qualquer coisa realmente.
O Windows tem o comando shutdown /m \computername
embutido, mas para o Linux você provavelmente teria que instalar o ssh e usar ssh root@computername /sbin/shutdown
. Por que uma caixa do Linux não teria o SSH instalado?
Um pouco mais de contexto para o seu problema seria útil. Em geral, a resposta é 'não'.
Desligar remotamente qualquer computador aleatório geralmente não é uma boa coisa para ser capaz de fazer, então a maioria está configurada para proteger contra isso. Se o acesso sshd for bloqueado, seja desativado ou protegido por firewall, esse computador ficará ainda mais protegido, como deveria, e ter root não fará bem a você, a menos que você esteja na frente desse computador.
Por outro lado, existem alguns centros de computação que usam sistemas de gerenciamento para fazer exatamente o que você está pensando. Eles geralmente são suportados por um daemon especial em execução no computador, escutando em uma porta de rede diferente de sshd ou usando utilitários de firmware de baixo nível integrados à placa de rede. Esses cenários exigem um pouco de planejamento e não o ajudarão se, de repente, você tiver um problema agora.
Dependendo da idade do computador e do sistema operacional, pode haver vetores de ataque conhecidos que possam obter acesso root usando o software de craqueamento. Eu não recomendo esta rota, mas existe.
Uma última ideia - existem réguas de energia operadas remotamente que podem ser usadas. Se você souber qual computador é e qual filtro de força e em que plugue ele está conectado, basta desligar a energia desse plugue. Novamente, isso requer um pré-planejamento, e você quer ter certeza de que alguém não conectou o ventilador a esse ponto.
Você terá que descobrir o que é o roteador. Depois de encontrá-lo, digite o seguinte em um prompt de comando:
shutdown -s -f -m \"IP of remote machine" -t xx
Se você instalar o serviço SSH, como mencionado anteriormente, você pode usar o comando ssh como:
ssh [email protected] shutdown -hy 0
Para que tudo isso seja automatizado, a troca de chaves deve ser feita, portanto, sua chave privada está em seu arquivo ~ / .ssh / identity padrão, e a parte pública no arquivo ~ / .ssh / authorized_keys no controle remoto host.
Se você olhar para o SSH, verá todas as opções e muito mais.
shutdown -i
na janela de execução. É possível através do comando como
shutdown -s -f -m \"ip of remote machine" -t xx
mas para isso o sistema deve estar na lan ... -t xx
é segundos que você deve especificar.
Digite o seguinte em um prompt de comando:
shutdown -ip
Em seguida, adicione o endereço IP e você tem diferentes opções para desligar, reiniciar e assim por diante.
Existe um programa para o linux chamado winexe que pode remotamente enviar um comando para máquinas windows remotas, e acho que se o samba estiver instalado no linux, ele pode funcionar com isso também, o melhor é que ele não precisa de nenhuma mudança para os windows pcs