
В Windows доступно несколько команд, позволяющих выключить или перезагрузить локальный или удаленный компьютер. В этой статье мы рассмотрим, как использовать команду shutdown команда и команды PowerShell Перезагрузка компьютера и Стоп-компьютер для выключения/перезапуска Windows.
Использование команды выключения в Windows
The Shutdown.exe это встроенный инструмент командной строки Windows, который позволяет перезагружать, выключать, переводить компьютер в спящий режим, гибернацию или завершать сеанс работы пользователя. В этом руководстве мы рассмотрим основные примеры использования команды shutdown в Windows. Все рассмотренные выше команды выполняются в диалоговом окне «Выполнить». Win+R
->, в командной строке (cmd.exe) или PowerShell.
Команда shutdown имеет следующий синтаксис: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
Как видите, команда имеет довольно много опций и может быть использована для выключения/перезапуска локального или удаленного компьютера.
Как выключить windows из командной строки
Чтобы выключить Windows, используйте команду shutdown с параметром /s ключ.
shutdown /s
Перезагрузка Windows из CMD
Чтобы перезагрузить компьютер, воспользуйтесь командой /r параметр. После его выполнения Windows будет изящно перезапущена.
shutdown /r
Завершение сеанса пользователя
Чтобы завершить текущий сеанс пользователя (выйти из системы), выполните следующую команду
shutdown /l
Эта команда работает так же, как logoff.exe команда.
Как перевести Windows в спящий режим с помощью команды shutdown?
Чтобы перевести компьютер в спящий режим, выполните эту команду:
shutdown /h
В спящем режиме все содержимое памяти записывается в файл hiberfil.sys на локальном диске, и компьютер переходит в спящий режим с пониженным энергопотреблением.
Уведомление вошедших в систему пользователей о предстоящей перезагрузке или выключении
Вы можете уведомить всех вошедших в систему пользователей Windows о предстоящем выключении/перезагрузке компьютера или сервера, отправив всплывающее сообщение всем активным сессиям. Как правило, эта функция используется на RDS-серверах, на которых одновременно работают несколько пользователей в своих RDP-сессиях.
shutdown /r /c “This server will be restarted in 60 seconds.”
Отложенное выключение/перезагрузка компьютера с помощью таймера
Вы можете выключить или перезагрузить компьютер с определенной задержкой (по таймеру). Используя /t Опция позволяет указать промежуток времени, по истечении которого компьютер/сервер будет выключен или перезагружен. Таким образом, вы можете предоставить пользователям некоторое время для сохранения открытых файлов и корректного закрытия приложений. Удобно использовать эту опцию вместе с уведомлением. В этом примере мы сообщаем пользователям, что Windows будет выключена через 10 минут (600 секунд).
shutdown /s /t 600 /c "The server will be shutdown in 10 minutes. Save your work!"
Пользователь будет предупрежден о запланированном выключении:
You’re about to be signed out
Если задержка слишком велика (например, 60 минут/3 600 секунд), в правом нижнем углу экрана появляется всплывающее окно:
You’re about to be signed out. Your Windows will shutdown in 100 minutes.
Как остановить/отменить/прервать выключение системы в Windows
По умолчанию Windows ждет 60 секунд, ничего не предпринимая после выполнения команды выключения или перезагрузки. Администратор может отменить перезагрузку или выключение устройства, выполнив эту команду в течение этого времени:
shutdown /a
После отмены выключения вы увидите следующее всплывающее сообщение в правом нижнем углу экрана:
Logoff is cancelled. The scheduled shutdown has been cancelled.
Немедленно перезапустите Windows
Чтобы выключить или перезагрузить компьютер немедленно, не дожидаясь 60 секунд, укажите 0 в качестве значения параметра /t. Например:
shutdown /r /t 0
[/f ключ очень важен. Я использую его почти всегда при выключении или перезапуске хостов Windows Server. Этот атрибут позволяет принудительно закрыть все запущенные программы и процессы, не дожидаясь подтверждения от пользователя (мы не будем ждать, пока пользователь подтвердит закрытие всех приложений на RDS-сервере, так как никогда не сможем его получить).
Следующая команда перезагрузит компьютер и автоматически запустит все зарегистрированные приложения после перезагрузки (здесь имеются в виду приложения, зарегистрированные в системе с помощью API RegisterApplicationRestart).
shutdown /g
Создание ярлыка перезагрузки на рабочем столе Windows
Для удобства пользователей можно создать ярлык на рабочем столе для перезагрузки или выключения компьютера с указанием необходимых параметров. Такой ярлык может быть полезен при необходимости перезапустить компьютер из RDP-сессии, когда в меню «Пуск» нет опций для перезапуска или выключения компьютера.
Как перезапустить Windows в определенное время (по расписанию)?
Если вы хотите, чтобы ваш компьютер или сервер перезагружался/выключался в определенное время, вы можете добавить команду выключения с параметрами в планировщик задач Windows (taskschd.msc
).
Например, эта задача планировщика будет перезагружать компьютер ежедневно в 12 часов ночи.
Или вы можете создать новую задачу планировщика с помощью PowerShell:
$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
Как выключить или перезагрузить удаленный компьютер Windows?
Вы можете использовать команду shutdown.exe для перезагрузки удаленного компьютера. Для этого удаленный компьютер должен быть доступен по сети, а используемая вами учетная запись u должна входить в группу локальных администраторов на удаленном компьютере (сервере):
shutdown /r /t 120 /m \\192.168.1.210
Если все условия, описанные выше, выполнены, но при выполнении команды shutdown возникает ошибка «Доступ запрещен (5)«, необходимо разрешить удаленный доступ к административным ресурсам (C$, ADMIN$) на удаленном компьютере, изменив значение параметра LocalAccountTokenFilterPolicy на 1.
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
Вы можете включить эти правила брандмауэра с помощью PowerShell:
Get-NetFirewallrule -name WMI-RPCSS-In-TCP,WMI-WINMGMT-In-TCP,FPS-SMB-In-TCP| Enable-NetFirewallRule
Или настроить правила брандмауэра Windows Defender с помощью GPO.
Если вам нужно предоставить учетные данные пользователя для подключения к удаленному компьютеру, вы можете использовать команды:
net use \\192.168.13.111 /u:corp\username
shutdown /s /t 60 /f /m \\192.168.13.111
Если вам нужно удаленно перезагрузить несколько компьютеров, вы можете сохранить список компьютеров в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью простого сценария PowerShell:
$sh_msg = "Your computer will be automatically restarted in 10 minutes. Save your files and close running apps"
$sh_delay = 600 # seconds
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
{
& 'C:\Windows\System32\SHUTDOWN.exe' "-m \\$comp -r -c $sh_msg -t $sh_delay"
}
Перезагрузка нескольких компьютеров с помощью графического интерфейса Shutdowm.exe
Для тех, кому неудобно работать в командной строке, существует графический интерфейс для команды shutdown.exe. Чтобы вызвать графический интерфейс диалога удаленного выключения, используйте команду:
shutdown /i
Как вы видите, в диалоге удаленного выключения можно добавить несколько компьютеров для перезагрузки/выключения, указать текст уведомления и указать причину выключения для сохранения в журнале событий Windows.
Перезагрузка или выключение Windows с помощью PowerShell
Следующие две команды доступны в Windows PowerShell для выключения и перезагрузки компьютера: Restart-Computer и Стоп-компьютер. Обе команды позволяют выключить или перезагрузить локальный или удаленный компьютер (по сети).
Чтобы перезапустить Windows, выполните команду:
Restart-Computer -force
Чтобы выключить компьютер:
Stop-Computer
По умолчанию перезагрузка начнется через 5 секунд. Вы можете увеличить задержку перед перезагрузкой:
Restart-Computer –Delay 60
Обе команды имеют параметр -ComputerName
параметр, позволяющий указать список удаленных компьютеров для выполнения действия.
Например, для удаленного выключения двух серверов Windows:
Stop-Computer -ComputerName "mun-srv01", "mun-srv02"
Для подключения к удаленному узлу можно указать учетные данные администратора:
$Creds = Get-Credential
Restart-Computer -ComputerName mun-srv01-Credential $Creds
Для подключения к удаленным компьютерам используются WMI и DCOM (они должны быть включены и настроены). Если WMI не настроен, при выполнении команды возникнет следующая ошибка:
Restart-Computer : Failed to restart the computer wks-11222 with the following error message: Access is denied. Exception from HRESULT: 0x80070005 (E_ACCESSDENIED).
Если на удаленном компьютере включено WinRM (Windows Remote Management), для подключения можно использовать WSman вместо WMI:
Restart-Computer -ComputerName wks-11222 -Protocol WSMan
Если на удаленном компьютере есть активные сеансы пользователей, появится ошибка:
Restart-Computer : Failed to restart the computer wks-11222 with the following error message: The system shutdown cannot be initiated because there are other users logged on to the computer.
qwinsta /server:wks-11222
Чтобы принудительно перезагрузиться, необходимо добавить параметр -Force параметр:
Restart-Computer -ComputerName wks-11222 –Force
Вы можете использовать -For
, чтобы перезагрузить компьютер и подождать, пока он станет доступным. Например, вы хотите убедиться, что удаленный компьютер успешно перезагрузится и на нем будет запущена служба WinRM, что позволит вам подключиться к нему через WS-Management:
Restart-Computer -ComputerName wks-11222 -Wait -For WinRM
Restarting computer wks-11222 Verifying that the computer has been restarted.
Restart-Computer -ComputerName wks-11222 -Wait -For TermService
Если вам нужно перезагрузить несколько компьютеров одновременно, вы можете использовать параллельное выполнение команд, доступное в PowerShell 7.x (см. раздел «Как обновить PowerShell»).
Например, вы можете получить список узлов Windows Servers в определенном контейнере Active Directory (организационная единица) с помощью команды Get-ADComputer и перезапустить их одновременно:
$Computers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -SearchBase "OU=Servers,DC=woshub,DC=com").Name
$Computers | ForEach-Object -Parallel { Restart-Computer -ComputerName $_ -Force} -ThrottleLimit 3