Desligar PC na LAN

0

Bom dia

Um pequeno pano de fundo para dizer que não tenho nenhuma intenção maliciosa com a minha pergunta: estou prestes a automatizar minha casa e fazer um bom progresso: várias dezenas de dispositivos podem ser ligados e desligados programaticamente de qualquer computador doméstico usando meu aplicativo VB6 (e há outros recursos, como bloquear um dispositivo para impedir que ele seja desligado).

Agora, o próximo passo é implementar uma linguagem de script desenvolvida para automatizar as tarefas sequenciais. A linguagem define programas em pastas de tarefas. Por exemplo, um desses programas, chamado "Boa Noite", tem a tarefa de desligar todas as máquinas "não vitais" durante a noite.

Mas não importa o que eu tente, parece que não consigo forçar um PC em minha LAN a desligar corretamente (ou seja, desligá-lo ou, melhor ainda, colocá-lo em hibernação). Claro que posso tirar o poder do PC, mas bem ...

Desligamento / s / m \\ nome_do_computador parece a opção natural, mas supostamente não funciona para um computador remoto após o Windows XP. Certamente não funciona no meu ambiente Windows 8.1: termina com "Acesso negado (5)". Executar cmd como administrador não me dá o acesso desejado.

Como posso conseguir minha tarefa através do shell? (Ou VB6, é claro, mas quando possível via shell, eu deveria gerenciar também no VB6).

Obrigado antecipadamente!

    
por Herb 06.05.2017 / 14:01

2 respostas

1

O comando shutdown DOES funciona, mas você precisa ativá-lo no computador de destino. Portanto, pesquise na Internet por "diretiva de filtro de token de desligamento remoto".

Em segundo lugar, você precisa se autenticar no computador remoto para poder executar o showdown. O comando de desligamento não fornece uma funcionalidade para transmitir credenciais de logon, então você precisa enviá-las de uma maneira diferente antes de fazer o desligamento. Eu sugiro que você mapeie uma unidade de rede para esse propósito. Funciona bem para mim. Você não precisa criar um compartilhamento de rede no alvo apenas para isso, use IPC $.

Aviso: você precisa fazer logon no alvo com credenciais do computador de destino! Os direitos locais dessas credenciais não são relevantes; o usuário de destino pode nem mesmo existir localmente. E o usuário alvo deve ter privilégios suficientes para encerrar o alvo.

    
por 06.05.2017 / 22:39
0

Existem três maneiras de executar os comandos do Windows remotamente.

  1. Use o PSExec da Sysinternals

  2. Use o WMI para executar comandos remotos

  3. Use o ControlUp para executar comandos remotos

Você pode encontrar informações detalhadas aqui .

    
por 07.05.2017 / 00:36