Статья описывает, как выключить или перезагрузить компьютер на Windows из командной строки: PowerShell, JScript/VBScript с WSH, nhss, shutdown. А также дополнительно, как сделать выключение или перезагрузку с задержкой.

Выключить или перезагрузить компьютер из PowerShell

Выключить компьютер можно командной Stop-Computer из консоли PowerShell:

PS C:\> Stop-Computer

Перезагрузить компьютер можно командой Restart-Computer из консоли PowerShell:

PS C:\> Restart-Computer

Как это выглядит:

Поскольку PowerShell сейчас устанавливается на Windows по умолчанию, то использование PS команды не требует дополнительных установок.

Чтобы выполнить выключение или перезагрузку через PowerShell из bat файла или из командной строки, их надо вызывать через powershell:

powershell "restart-computer"

Выключить или перезагрузить компьютер из JScript/VBScript через WSH

Способ основан на использовании метода Win32Shutdown класса Win32_OperatingSystem:

Выключить компьютер можно следующим скриптом на JScript:

var wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\\\.\\root\\cimv2");
var col_os = wmi.ExecQuery("Select * from Win32_OperatingSystem");
for(var i = new Enumerator(col_os); !i.atEnd(); i.moveNext())
  i.item().Win32Shutdown(1);

Перезагрузить компьютер можно следующим скриптом на JScript:

var wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\\\.\\root\\cimv2");
var col_os = wmi.ExecQuery("Select * from Win32_OperatingSystem");
for(var i = new Enumerator(col_os); !i.atEnd(); i.moveNext())
  i.item().Win32Shutdown(2);

Пример на VBScript, с forced restart (добавляется 4):

Dim WMIServiceObject, ComputerObject AsObject 

WMIServiceObject = GetObject(
"Winmgmts:{impersonationLevel=impersonate,(Debug,Shutdown)}")
ForEach ComputerObject In WMIServiceObject.InstancesOf("Win32_OperatingSystem") 
    ComputerObject.Win32Shutdown(2 + 4, 0)

Поскольку WSH сейчас установлен по умолчанию на Windows, то использование JScript/VBScript не требует установки каких-либо программных компонентов.

Выключить или перезагрузить компьютер программой nhss

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

Выключить компьютер можно следующей командой:

nhss -sd

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

nhss -r

Команды просты в использовании, но потребуется установить программу nhss.exe и прописать путь к ней.

Выключить или перезагрузить компьютер командой shutdown

Выключить компьютер можно следующей командой:

shutdown

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

shutdown -r

Важно! Команда shutdown делает «грубое» завершение Windows, которое на практике приводило к тому, что не сохранялись настройки, сделанных в Windows в текущем сеансе. Поэтому хотя и выключение/перезагрузка компьютера через shutdown действительно срабатывает, я бы не рекомендовал использование shutdown для обычного завершения, а только для экстренных случаев, когда требуется максимально быстро завершить Windows, например, в случае Low Battery на ИБП.

Как выключить компьютер по таймеру

Чтобы настроить выключение компьютера через определенное время, например, через 1 час, это можно сделать выполнением команды выключения с задержкой, см. Сделать задержку в командном файле:

ping 127.0.0.1 -n 3600 > nul && nhss -sd

Или через PowerShell с задержкой в 30 минут:

ping 127.0.0.1 -n 1800 > nul && powershell "stop-computer"

Выключение или перезагрузка компьютера из bat файла
Метки:                

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

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