Como reiniciar computadores Windows remotamente usando PowerShell

Os administradores de sistema geralmente precisam reiniciar computadores Windows remotamente para manutenção, atualizações ou solução de problemas. O PowerShell fornece vários métodos eficientes para realizar esta tarefa. Este artigo explora seis técnicas eficazes para reiniciar computadores Windows remotamente usando o PowerShell, desde cmdlets simples até abordagens mais avançadas.

Pré-requisitos para reinicialização remota

Antes de tentar reiniciar um computador Windows remoto, certifique-se de ter:

  • Uma conta de usuário com privilégios de administrador local no computador remoto.
  • PowerShell ou PowerShell Core instalado em sua máquina local.
  • Gerenciamento Remoto do Windows (WinRM) configurado e permitido através do firewall do computador remoto.
  • Instrumentação de gerenciamento do Windows (WMI) permitida através do firewall do computador remoto.

Também é crucial verificar se o sistema remoto ainda não está com reinicialização pendente antes de prosseguir com qualquer comando de reinicialização.

Método 1: usando o cmdlet Restart-Computer

ORestart-Computercmdlet é o método mais direto e flexível para reiniciar computadores Windows remotos.

Etapa 1:Abra o PowerShell como administrador em sua máquina local.

Etapa 2:Use o seguinte comando para reiniciar um único computador remoto:

Restart-Computer -ComputerName "RemotePC" -Force

Substitua “RemotePC” pelo nome real ou endereço IP do computador remoto que você deseja reiniciar.

Etapa 3:Para reiniciar vários computadores em paralelo, você pode usar o seguinte comando:

$ComputerArray | ForEach-Object -Parallel {
    Restart-Computer -ComputerName $_ -Force
} -ThrottleLimit 3

Este comando utiliza as capacidades de processamento paralelo do PowerShell para reiniciar vários computadores simultaneamente, com um limite de aceleração de 3 para controlar a utilização de recursos.

Método 2: aproveitando Invoke-CimMethod

OInvoke-CimMethodcmdlet usa Windows Management Instrumentation (WMI) para reinicializar o sistema remoto.

Etapa 1:Abra o PowerShell como administrador.

Etapa 2:Execute o seguinte comando:

Invoke-CimMethod -ComputerName "RemotePC" -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'

Substitua “RemotePC” pelo nome ou endereço IP do computador de destino.

Este método é particularmente útil ao trabalhar com sistemas que possuem configurações WMI específicas ou quando você precisa executar outras tarefas relacionadas ao WMI juntamente com a operação de reinicialização.

Método 3: utilizando o comando shutdown.exe

Oshutdown.execomando é um utilitário integrado do Windows que pode ser usado para reiniciar computadores remotos.

Etapa 1:Abra o PowerShell como administrador.

Etapa 2:Execute o seguinte comando:

shutdown.exe /m \RemotePC /r /t 0

Substitua “RemotePC” pelo nome do computador remoto que você deseja reiniciar.

Este método requer que o serviço Registro Remoto esteja habilitado no computador remoto e que o WMI seja permitido através do firewall do Windows.

Método 4: usando PSExec.exe

PSExec.exe faz parte do kit de ferramentas Sysinternals e oferece recursos exclusivos para interagir com sistemas remotos.

Etapa 1:Baixe e instale o Sysinternals Suite do site oficial da Microsoft.

Etapa 2:Abra o PowerShell como administrador e navegue até o diretório que contém PSExec.exe.

Etapa 3:Execute o seguinte comando:

.psexec.exe -d -h \RemotePC "shutdown.exe /r /t 0 /f"

Substitua “RemotePC” pelo nome do computador de destino.

Este método requer que o serviço SMB esteja em execução, o compartilhamento de arquivos e impressoras esteja habilitado, o compartilhamento simples de arquivos esteja desabilitado e o compartilhamento administrativo admin$ esteja disponível no computador remoto.

Método 5: usando RunDLL32.exe via Invoke-Command

Este método combinarundll32.execom o PowerShellInvoke-Commandpara reiniciar um sistema remoto.

Etapa 1:Abra o PowerShell como administrador.

Etapa 2:Execute um dos seguintes comandos:

Método 5a:

Invoke-Command -ComputerName "RemotePC" -ScriptBlock { & rundll32.exe user.exe,ExitWindowsExec }

Método 5b:

Invoke-Command -ComputerName "RemotePC" -ScriptBlock { & rundll32.exe shell32.dll,SHExitWindowsEx 2 }

Substitua “RemotePC” pelo nome ou endereço IP do computador remoto.

Esses métodos são úteis quando você precisa realizar operações remotas adicionais junto com o processo de reinicialização.

Método 6: forçar uma reinicialização com Taskkill.exe

Este método força a reinicialização do Windows encerrando um processo crítico do sistema.

Etapa 1:Abra o PowerShell como administrador.

Leitura sugerida:Como desligar ou reiniciar remotamente um PC com Windows

Etapa 2:Execute o seguinte comando:

taskkill.exe /S \RemotePC /IM lsass.exe /F

Substitua “RemotePC” pelo nome do computador de destino.

Cuidado:Este método deve ser usado como último recurso, pois encerra à força um processo crítico do Windows. Pode resultar em perda de dados ou instabilidade do sistema se não for usado com cuidado.

Esses seis métodos fornecem aos administradores de sistema uma variedade de opções para reiniciar computadores Windows remotamente usando o PowerShell. Escolha o método que melhor atende aos seus requisitos específicos e configuração de rede. Lembre-se de testar esses comandos em um ambiente controlado antes de usá-los em um ambiente de produção.

Related Posts