Как перезагрузить компьютер удаленно через Powershell


25 июня 2019


Перезагрузка удаленного компьютера через Powershell

В 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 не осуществляет проверку подлинности и из-за этого такой вариант не рекомендуется.

Если у вас все же не получается перезагрузить компьютер, попробуйте прочитать эту статью.

...

Теги: #powershell


Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, преобретенного опыта и лучшие практики в системном администрировании и программировании.