Выключение/перезапуск Windows с помощью командной строки и PowerShell

В 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"]]
Команда shutdown.exe в WindowsКоманда shutdown.exe в Windows

Как видите, команда имеет довольно много опций и может быть использована для выключения/перезапуска локального или удаленного компьютера.

Как выключить windows из командной строки

Чтобы выключить Windows, используйте команду shutdown с параметром /s ключ.

shutdown /s

Перезагрузка Windows из CMD

Чтобы перезагрузить компьютер, воспользуйтесь командой /r параметр. После его выполнения Windows будет изящно перезапущена.

shutdown /r

shutdown /r -reboot windows из cmdshutdown /r -reboot windows from cmd

Завершение сеанса пользователя

Чтобы завершить текущий сеанс пользователя (выйти из системы), выполните следующую команду

shutdown /l

shutdown /l - выход из сеанса текущего пользователя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

команда windows shutdown - Вы собираетесь выйти из системы. Ваша Windows выключится через 10 минуткоманда windows shutdown - Вы собираетесь выйти из системы. Ваша Windows выключится через 10 минут

Эта команда полезна для уведомления пользователей с сеансами на хостах RDSH в ферме служб удаленных рабочих столов на сервере Windows Server, когда вы хотите перезапустить сервер для выполнения технического обслуживания. Ее можно использовать вместе с режимом RDS Maintenance (Drain) Mode.

Если задержка слишком велика (например, 60 минут/3 600 секунд), в правом нижнем углу экрана появляется всплывающее окно:

You’re about to be signed out. Your Windows will shutdown in 100 minutes.

Вы сейчас выйдете из системы. Ваша Windows выключится через 100 минутВы собираетесь выйти из системы. Ваша Windows выключится через 100 минут

Как остановить/отменить/прервать выключение системы в 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-сессии, когда в меню «Пуск» нет опций для перезапуска или выключения компьютера.

ярлык выключенияярлык выключения

Вы можете добавить такой ярлык на компьютеры пользователей с помощью GPO.

Как перезапустить 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 должна входить в группу локальных администраторов на удаленном компьютере (сервере):

Вы можете добавить пользователей домена в группу Administrators через GPO.

shutdown /r /t 120 /m \\192.168.1.210

выключение удаленного узла windowsвыключение удаленного узла windows

Если все условия, описанные выше, выполнены, но при выполнении команды shutdown возникает ошибка «Доступ запрещен (5)«, необходимо разрешить удаленный доступ к административным ресурсам (C$, ADMIN$) на удаленном компьютере, изменив значение параметра LocalAccountTokenFilterPolicy на 1.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f

Включите правила входящих WMI и SMB в брандмауэре Windows Defender Firewall на удаленном компьютере, чтобы разрешить удаленный доступ с помощью команды shutdown.exe.

Вы можете включить эти правила брандмауэра с помощью 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

диалог удаленного выключения GIUдиалог удаленного выключения GIU

Как вы видите, в диалоге удаленного выключения можно добавить несколько компьютеров для перезагрузки/выключения, указать текст уведомления и указать причину выключения для сохранения в журнале событий Windows.

Перезагрузка или выключение Windows с помощью PowerShell

Следующие две команды доступны в Windows PowerShell для выключения и перезагрузки компьютера: Restart-Computer и Стоп-компьютер. Обе команды позволяют выключить или перезагрузить локальный или удаленный компьютер (по сети).

команда powershell restart-computerкоманда 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).

restart-computer: access is denied 0x80070005перезагрузка компьютера: доступ запрещен 0x80070005

Если на удаленном компьютере включено 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.

Restart-Computer : Не удалось перезагрузить компьютер Выключение системы не может быть инициировано, поскольку на компьютере зарегистрированы другие пользователи Restart-Computer : Failed to restart the computer The system shutdown cannot be initiated because there are other users logged on the computer

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

qwinsta /server:wks-11222

Чтобы принудительно перезагрузиться, необходимо добавить параметр -Force параметр:

Restart-Computer -ComputerName wks-11222 –Force

Запись в журнале событий с идентификатором EventID 1074 (Event Viewer -> Windows Logs -> System) будет содержать имя пользователя, который выключил/перезапустил Windows.

Идентификатор события 1074 - кто перезапустил WindowsИдентификатор события 1074 - кто перезапустил windows

Вы можете использовать -For , чтобы перезагрузить компьютер и подождать, пока он станет доступным. Например, вы хотите убедиться, что удаленный компьютер успешно перезагрузится и на нем будет запущена служба WinRM, что позволит вам подключиться к нему через WS-Management:

Restart-Computer -ComputerName wks-11222 -Wait -For WinRM

Restarting computer wks-11222
Verifying that the computer has been restarted.

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

Можно подождать, пока запустится служба удаленных рабочих столов (RDP) или любая другая служба Windows:

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

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

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