В Powershell есть возможность удаленного выполнения команд. Этот механизм я описывал в этой статье. Если вы никогда не исполняли командлеты типа Invoke-Command или New-PSSession я попробую вкратце объяснить.
Вообще для удаленной перезагрузки Powershell нужно выполнить следующий командлет:
$cred = Get-Credential
Invoke-Command -ComputerName CL1 -Credential $cred -ScriptBlock {Restart-Computer}
Где:
$cred - переменная, которая хранит учетные данные (логин/пароль). Она не обязательна, если вы администратор на удаленном компьютере
-ComputerName - имя компьютера, который будем перезагружать
-ScriptBlock {Restart-Computer} - значит, что мы посылаем команду перезагрузки
Второй вариант такой:
Enter-PSSession -ComputerName CL1 -Credential $cred
Restart-Computer
Отличия между командами в том, что в первом случае мы посылаем команду перезагрузки сразу, а во втором мы сначала подключаемся, а затем перезагружаем компьютер через Powershell. Отмечу, что во втором случае, если команда не выполнится то вы можете перезагрузить свой компьютер (выполняйте последовательно что бы предотвратить это).
В чем могут быть проблемы при удаленной перезагрузки компьютера
Если вы находитесь в домене, то удаленные команды Powershell должны выполнится при условии, что у вас запущен WinRM, а он запускается так:
Enable-PSRemoting
Вы так же должны быть с полномочиями администратора удаленного компьютера (по умолчанию WinRM работает так). Если вместо имени компьютера вы используете IP или вы не в домене, то вы используете не Kerberos, а NTLM и он по умолчанию выключен. Для этого вам нужно либо выпустить SSL сертификат, либо должны выполнить такую команду:
Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.3.134
Где вместо 192.168.3.134 должны вписать IP компьютера к которому хотите подключиться. Можно сделать и так:
Set-Item wsman:\localhost\Client\TrustedHosts -value *
Но в этом случае вы сможете подключаться ко всем компьютерам. Проблема в том, что NTLM не осуществляет проверку подлинности и из-за этого такой вариант не рекомендуется.
Если у вас все же не получается перезагрузить компьютер, попробуйте прочитать эту статью.
...
Подписывайтесь на наш Telegram канал
Теги: #powershell