De vez em quando, principalmente, um administrador de sistema precisará reiniciar um servidor ou sistema. Normalmente, você pode se conectar remotamente a um sistema e reiniciar / desligar o sistema por meio da interface gráfica do usuário - PowerShell fornece vários métodos para reiniciar um computador remotamente e vamos delinear os 6 métodos conhecidos neste artigo.
Reinicie um computador Windows remotamente usando o PowerShell
Um pré-requisito para esses métodos é garantir que possamos entrar em contato com os sistemas remotos e autenticar conforme necessário. E também, você precisa verificar se um sistema remoto não está aguardando uma reinicialização.
Você precisará do seguinte:
- Uma conta de usuário no computador remoto no grupo do administrador local.
- Windows PowerShell ou PowerShell Core.
1] Reinicie um computador remoto com Reiniciar-Computador
Este cmdlet é simples de usar com parâmetros flexíveis. Um pré-requisito adicional para o comando funcionar é garantir que o WinRM esteja configurado e permitido através do firewall do Windows do computador remoto e que o WMI seja permitido através do firewall do Windows.
Reiniciar-Computador -ComputerName $ ComputerName -Force
Para reiniciar vários computadores em paralelo, execute o seguinte comando:
$ ComputerArray | ForEach-Object -Parallel Restart-Computer -ComputerName $ _ -Force -ThrottleLimit 3
2] Reinicie um computador remoto com Invoke-CimMethod
O Invoke-CimMethod
funciona usando um método WIM para reiniciar o sistema remoto - embora não seja tão flexível quanto o Reinicialização do computador
cmdlet.
Um pré-requisito adicional para o comando funcionar é garantir que o WinRM esteja configurado e permitido através do firewall do Windows do computador remoto.
Invoke-CimMethod -ComputerName $ ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'
3] Reinicie um computador remoto com desligamento.Exe
O desligar.Exe
é o executável interno padrão que o Windows oferece para reiniciar um sistema e não é um comando do PowerShell, mas oferece uma série robusta de opções.
Um pré-requisito adicional para o comando funcionar é garantir que o computador remoto tenha o serviço Registro Remoto habilitado e WMI permitido através do firewall do Windows.
desligar.exe / m \\ remotecomputer / r / t 0
4] Reinicie um computador remoto com PSExec.Exe
Um dos utilitários mais usados no kit de ferramentas Sysinternals, psexec.Exe
oferece várias habilidades únicas que facilitam a interação com um sistema remoto.
Um pré-requisito adicional para o comando funcionar é garantir que o serviço SMB esteja em execução, o compartilhamento de arquivos e impressoras esteja ativado, o compartilhamento simples de arquivos esteja desativado e o compartilhamento admin $ administrativo esteja disponível.
psexec.exe -d -h \\ remotecomputer "desligamento.exe / r / t 0 / f "
5] Reinicie um computador remoto com RunDLL32.Exe
O rundll32.Exe
oferece uma maneira de executar certos métodos em executáveis internos e APIs do Windows, como shell32.dll. Existem dois métodos que você pode reiniciar um sistema usando esta funcionalidade, mas este método não pode ser realmente usado remotamente por si só, você pode combiná-lo com o PowerShell por meio de um Invoke-Command
em um sistema remoto.
Método 1:
Invoke-Command -ComputerName $ ComputerName -ScriptBlock & rundll32.usuário exe.exe ExitWindowsExec
Método 2:
Invoke-Command -ComputerName $ ComputerName -ScriptBlock & rundll32.usuário exe.exe ExitWindowsExec
6] Reinicie um computador remoto com Taskkill.Exe
Por último mas não menos importante, matança.Exe
é um outro utilitário do Windows que oferece algumas funcionalidades para reiniciar o Windows, embora de uma forma indireta. Ao terminar o lsassa.Exe
processo, você forçará uma reinicialização do Windows.
matança.exe / S \\ remotecomputer / IM lsass.exe / F
É isso nas 6 maneiras de usar o PowerShell para reiniciar um computador remoto!