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.














