Как в PowerShell перезагрузить компьютер


Командлет Restart-Computer

Командлет Restart-Computer перезапускает операционную систему на локальном или удалённом компьютерах.

Следующая команда перезагрузит локальный компьютер:

Restart-Computer

Вы можете использовать Restart-Computer с различными параметрами для запуска операций перезапуска, для указания уровней аутентификации и альтернативных учётных данных, для ограничения операций, выполняемых одновременно, и для немедленного перезапуска.

Начиная с Windows PowerShell 3.0, вы можете дождаться завершения перезагрузки, прежде чем запускать следующую команду. Укажите время ожидания и интервал запроса и дождитесь, пока определённые службы будут доступны на перезагруженном компьютере. Эта функция делает практичным использование Restart-Computer в скриптах и функциях.

Restart-Computer работает только на компьютерах под управлением Windows и требует WinRM и WMI для завершения работы системы, включая локальную.

Пример перезагрузки нескольких компьютеров:

Restart-Computer -ComputerName Server01, Server02, localhost

Опция -ComputerName <String[]> задаёт одно имя компьютера или массив имён компьютеров, разделённых запятыми. Restart-Computer принимает объекты ComputerName из конвейера или переменных.

Введите имя NetBIOS, IP-адрес или полное доменное имя удалённого компьютера. Чтобы указать локальный компьютер, введите имя компьютера, точку «.» или localhost.

Этот параметр не зависит от удалённого взаимодействия PowerShell. Вы можете использовать параметр -ComputerName, даже если ваш компьютер не настроен для выполнения удалённых команд.

Если параметр -ComputerName не указан, Restart-Computer перезагружает локальный компьютер.


Если вы перезагружаете удалённый компьютер, то вам скорее всего понадобится опция -Credential <PSCredential>, которая задаёт учётную запись пользователя, у которой есть разрешение на выполнение этого действия. По умолчанию это текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, созданный командлетом Get-Credential. Если вы введёте имя пользователя, вам будет предложено ввести пароль.

Учётные данные хранятся в объекте PSCredential (/dotnet/api/system.management.automation.pscredential), а пароль хранится как SecureString (/dotnet/api/system.security.securestring).

В следующем примере перезагружаются компьютеры, чьи имена получены из текстового файла:

Get-Content -Path C:\Domain01.txt | Restart-Computer

Get-Content использует параметр -Path для получения списка имён компьютеров из текстового файла Domain01.txt. Имена компьютеров отправляются по конвейеру. Restart-Computer перезагружает каждый компьютер.

Принудительный перезапуск компьютеров, перечисленных в текстовом файле:


$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force

Get-Content использует параметр -Path для получения списка имён компьютеров из текстового файла Domain01.txt. Имена компьютеров хранятся в переменной $Names. Get-Credential запрашивает у вас имя пользователя и пароль и сохраняет значения в переменной $Creds. Restart-Computer использует параметры -ComputerName и -Credential с их переменными. Параметр -Force вызывает немедленную перезагрузку каждого компьютера.

Перезагрузка удалённого компьютера и ожидание его включения для выполнения PowerShell:

Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2

Restart-Computer использует параметр -ComputerName для перезагрузки Server01. Параметр -Wait делает так, что команда ожидает завершения перезапуска. -For устанавливает, что PowerShell может запускать команды на удалённом компьютере. Параметр -Timeout устанавливает пятиминутной ожидание. Параметр -Delay каждые две секунды опрашивает удалённый компьютер, чтобы определить, перезагружен ли он.

Перезагрузка компьютера с помощью WsmanAuthentication:

Restart-Computer -ComputerName Server01 -WsmanAuthentication Kerberos

Restart-Computer использует параметр -ComputerName для перезагрузки удалённого компьютера Server01. Параметр -WsmanAuthentication указывает метод проверки подлинности Kerberos.

Ошибка «Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями»

При перезагрузки удалённого компьютера, например:

Restart-Computer -ComputerName Win-Server-Core -Credential Administrator

может возникнуть ошибка

Restart-Computer: Failed to restart the computer Win-Server-Core with the following error message: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями..

Эта ошибка возникает если какой-либо пользователь выполнил вход на удалённом компьютере, для принудительной перезагрузки используйте опцию -Force:

Restart-Computer -ComputerName Win-Server-Core -Credential Administrator -Force

Перезагрузка компьютера без PowerShell

Без PowerShell вы можете перезагрузить компьютер следующей командой:

shutdown /r

Вам будет показано предупреждение и компьютер будет перезагружен по истечении 30 секунд.

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

shutdown /r /t 0

Вы можете добавить в команду опцию /f, которая означает принудительное закрытие запущенных приложений без предупреждения пользователей. Подразумевается использование параметра /f, если для параметра /t задано значение больше 0.


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *