Как удаленно перезагрузить компьютер с Windows 10 с помощью PowerShell

Время от времени, особенно системному администратору, необходимо перезапустить сервер или систему. Обычно вы можете удаленно завершить работу или перезагрузить Windows 10(Remote Shut down or Restart Windows 10) через графический интерфейс пользователя — PowerShell предоставляет несколько методов удаленной перезагрузки компьютера, и в этом посте мы расскажем о 6 известных методах.

Как использовать PowerShell для перезагрузки удаленного компьютера

Как удаленно перезагрузить(Remotely Restart) Windows 10 с помощью PowerShell

Предварительным условием для этих методов является гарантия того, что мы можем связаться с удаленными системами и пройти аутентификацию по мере необходимости. Кроме того, вам необходимо убедиться, что удаленная система не ожидает перезагрузки.

Вам понадобится следующее:

  • Учетная запись пользователя на удаленном компьютере в группе локального администратора.
  • Windows PowerShell или PowerShell Core(Windows PowerShell or PowerShell Core) .

1] Перезагрузите(Restart) удаленный компьютер с помощью Restart-Computer .

Этот командлет прост в использовании с гибкими параметрами. Дополнительным предварительным условием для работы команды является обеспечение того, чтобы WinRM был настроен и разрешен через брандмауэр Windows на удаленном компьютере,(allowed through the remote computer’s Windows firewall) а WMI разрешен через брандмауэр Windows .

Restart-Computer -ComputerName $ComputerName -Force

Чтобы перезапустить несколько компьютеров параллельно, выполните следующую команду:

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

2] Перезагрузите(Restart) удаленный компьютер с помощью Invoke-CimMethod.

Работает Invoke-CimMethodс использованием метода WIM для перезагрузки удаленной системы, хотя и не так гибко, как Restart-Computerкомандлет.

Дополнительным предварительным условием для работы команды является проверка того, что WinRM настроен и разрешен через брандмауэр Windows на удаленном компьютере.(Windows)

Invoke-CimMethod -ComputerName $ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'

3] Перезагрузите(Restart) удаленный компьютер с помощью файла shutdown.exe.

Это shutdown.exeстандартный встроенный исполняемый файл, который Windows предлагает для перезагрузки системы, и это не команда PowerShell , а набор надежных параметров.

Дополнительным предварительным условием для работы команды является наличие на удаленном компьютере включенной службы удаленного реестра и разрешения (Remote Registry)WMI через брандмауэр Windows .

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

4] Перезагрузите(Restart) удаленный компьютер с помощью PSExec.exe.

Одна из наиболее часто используемых утилит в наборе инструментов Sysinternals предлагает  psexec.exe несколько уникальных возможностей, упрощающих взаимодействие с удаленной системой.

Дополнительным предварительным условием для работы команды является обеспечение работы службы SMB(SMB Service) , включен общий доступ к файлам и принтерам(file and printer sharing is enabled) , отключен простой общий доступ к файлам и доступна административная общая папка admin$.

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

5] Перезагрузите(Restart) удаленный компьютер с помощью RunDLL32.exe.

Предлагает  rundll32.exe способ запуска определенных методов для внутренних исполняемых файлов и API-интерфейсов Windows(Windows APIs) , таких как shell32.dll. Существует два метода перезапуска системы с помощью этой функции, но этот метод нельзя использовать удаленно сам по себе, вы можете комбинировать его с PowerShell через Invoke-Command удаленную систему.

Способ 1(Method 1) :

Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }

Способ 2(Method 2) :

Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }

6] Перезагрузите(Restart) удаленный компьютер с помощью Taskkill.exe.

И последнее, но не менее важное: taskkill.exe это еще одна утилита Windows , которая предлагает некоторые функции для перезапуска Windows , хотя и обходным путем. Завершив  lsass.exe процесс, вы принудительно перезагрузите Windows .

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

Вот и все о 6 способах использования PowerShell для перезагрузки удаленного компьютера!



About the author

Я инженер-программист с более чем 10-летним опытом работы в индустрии Xbox. Я специализируюсь на разработке игр и тестировании безопасности. Я также являюсь опытным обозревателем и работал над проектами для некоторых из самых известных игровых компаний, включая Ubisoft, Microsoft и Sony. В свободное время я люблю играть в видеоигры и смотреть сериалы.



Related posts