Время от времени, особенно системному администратору, потребуется перезапускать сервер или систему. Обычно вы можете удаленно подключиться к системе и перезапустить / выключить систему через графический интерфейс пользователя - PowerShell предоставляет несколько методов для удаленной перезагрузки компьютера, и мы опишем 6 известных методов в этом посте.
Перезагрузите компьютер с Windows удаленно с помощью PowerShell
Предварительным условием использования этих методов является обеспечение возможности связи с удаленными системами и аутентификации при необходимости. А также необходимо убедиться, что удаленная система не ожидает перезагрузки.
Вам понадобится следующее:
- Учетная запись пользователя на удаленном компьютере в группе локального администратора.
- Windows PowerShell или PowerShell Core.
1] Перезагрузите удаленный компьютер с помощью Restart-Computer
Этот командлет прост в использовании с гибкими параметрами. Дополнительным предварительным условием для работы команды является то, что WinRM настроен и разрешен через брандмауэр Windows удаленного компьютера, а WMI разрешен через брандмауэр Windows.
Перезагрузка-Компьютер-ИмяКомпьютера $ ИмяКомпьютера-Force
Чтобы перезагрузить несколько компьютеров параллельно, выполните следующую команду:
$ ComputerArray | ForEach-Object -Parallel Restart-Computer -ComputerName $ _ -Force -ThrottleLimit 3
2] Перезагрузите удаленный компьютер с помощью Invoke-CimMethod
В Invoke-CimMethod
работает с использованием метода WIM для перезагрузки удаленной системы, хотя и не так гибко, как Перезапустить компьютер
командлет.
Дополнительным условием для работы команды является то, что WinRM настроен и разрешен через брандмауэр Windows удаленного компьютера.
Invoke-CimMethod -ComputerName $ ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'
3] Перезагрузите удаленный компьютер с выключением.EXE
В неисправность.EXE
- это стандартный встроенный исполняемый файл, который Windows предлагает для перезапуска системы, и это не команда PowerShell, но предлагает надежный набор опций.
Дополнительным условием для работы команды является то, что на удаленном компьютере включена служба удаленного реестра и разрешен WMI через брандмауэр Windows.
неисправность.exe / м \ удаленный компьютер / r / t 0
4] Перезагрузите удаленный компьютер с помощью PSExec.EXE
Одна из наиболее часто используемых утилит в наборе инструментов Sysinternals, psexec.EXE
предлагает несколько уникальных возможностей, которые упрощают взаимодействие с удаленной системой.
Дополнительным условием для работы команды является то, что служба SMB запущена, общий доступ к файлам и принтерам включен, простой общий доступ к файлам отключен и общий административный ресурс admin $ доступен.
psexec.exe -d -h \\ удаленный компьютер "выключение.exe / r / t 0 / f "
5] Перезагрузите удаленный компьютер с помощью RunDLL32.EXE
В rundll32.EXE
предлагает способ запуска определенных методов для внутренних исполняемых файлов и API-интерфейсов Windows, таких как shell32.dll. Есть два метода, с помощью которых вы можете перезапустить систему, используя эту функцию, но на самом деле этот метод нельзя использовать удаленно сам по себе, вы можете объединить его с PowerShell через Invoke-Command
в удаленной системе.
Способ 1:
Invoke-Command -ComputerName $ ComputerName -ScriptBlock & rundll32.пользователь exe.exe ExitWindowsExec
Способ 2:
Invoke-Command -ComputerName $ ComputerName -ScriptBlock & rundll32.пользователь exe.exe ExitWindowsExec
6] Перезагрузите удаленный компьютер с помощью Taskkill.EXE
Последний по порядку, но не по значимости, Taskkill.EXE
это еще одна утилита Windows, которая предлагает некоторые функции для перезапуска Windows, хотя и окольным путем. Завершив lsass.EXE
процесс, вы принудительно перезагрузите Windows.
Taskkill.exe / S \ удаленный компьютер / IM lsass.exe / F
Вот и все о 6 способах использования PowerShell для перезагрузки удаленного компьютера!