Вы находитесь на странице: 1из 1

Облако на Openstack

Готовые облачные серверы от 0,53 ₽/


час
Низкая стоимость, почасовая оплата

WinITPro.ru / PowerShell / Windows 10 / Windows


11 / Windows Server 2019 / Windows Server
2022 / Выключение и перезагрузка Windows из
командной строки

Выключение и перезагрузка
Windows из командной строки
10.01.2023 itpro

PowerShell, Windows 10, Windows 11, Windows Server 201

9, Windows Server 2022

комментариев 13

В Windows доступно несколько команд, которые


позволяют выключить или перезагрузить
локальный или удаленный компьютер. В этой
статье мы рассмотрим, как использовать команду
shutdown и PowerShell командлеты
Restart-Computer и Stop-Computer для
выключения/перезагрузки Windows.

Содержание:

• Использование команды
shutdown в Windows

• Перезагрузка удаленных ком-


пьютеров командой shutdown

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

Использование команды shutdown в


Windows

Утилита командной строки shutdown является


встроенной командой Windows, которая позволяет
перезагрузить, выключить компьютер, перевести
его в спящий режим или завершить сеанс
пользователя. В этой инструкции мы покажем
основные примеры использования команды
shutdown в Windows (все рассмотренные команды
запускаются в окне Выполнить — Win+R ->, в
командной строке cmd.exe или в консоли
PowerShell).

Команда shutdown имеет следующий синтаксис:

shutdown [/i | /l | /s | /sg | /r | /g | /a

| /p | /h | /e | /o] [/hybrid] [/soft] [/fw]

[/f] [/m \\компьютер][/t xxx][/d [p|u]xx:yy

[/c "комментарий"]]

Как вы видите, у команды довольно много опций, а


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

Выключение Windows командой Shutdown

Для выключения ОС Windows и компьютера


необходимо использовать команду shutdown с
ключом /s.

shutdown /s

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

Чтобы перезагрузить компьютер, необходимо


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

shutdown /r

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

Чтобы завершить текущую сессию пользователя


(logout), нужно выполнить команду:

shutdown /l

Эта команда аналогично выполнению команды


logoff.

Перевод компьютера в режим гибернации

Для перевода компьютер в режим гибернации (в


этом режиме все содержимое памяти
записывается в файл hyberZl.sys на диск и
компьютер переходит в спящий режим с
пониженным электропотреблением), выполните
команду:

shutdown /h

Перезагрузка компьютера с сообщением


пользователям

Вы можете предупредить всех пользователей


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

shutdown /r /c “Этот сервер будет

перезагружен через 60 секунд.”

Отложенное выключение / перезагрузка


компьютера

Можно выключить или перезагрузить компьютер с


определенной задержкой (по таймеру). С помощью
опции /t можно указать интервал времени (в
секундах), через который ПК/сервер будет
перезагружен или выключен. Тем самым вы
можете предоставить пользователям
дополнительное время для того, чтобы успеть
сохранить открытые файлы и корректно закрыть
приложения. Эту опцию удобно использовать
совместно с отправкой сообщения. В этом примере
мы указываем, что Windows будет выключена
через 10 минут (600 секунд) и информируем
пользователей сообщением.

shutdown /s /t 600 /c "Сервер будет

выключен через 10 минут. Сохраните свои

документы!"

Пользователю будет выдано предупреждение о


запланированном выключении: Ваш сеанс будет
завершен.

Такую команду удобно использовать для


оповещения пользователей с сеансами на
RDSH хостах в ферме Remote Desktop
Services на Windows Server, когда вы хотите
перезагрузить сервер для выполнения
обслуживания. Можно использовать
совместно с режимом обслуживания RDS
(Drain Mode).

Если задержка очень длительная, например, 100


минут (6000 секунд), то вместо предупреждающего
окна появляется всплывающее сообщение в
нижнем правом углу экрана: «Ваш сеанс будет
завершен. Работа Windows будет завершена через
100 мин».

Отмена выключения / перезагрузки компьютера

После запуска команды выключения или


перезагрузки Windows, по умолчанию утилита
shutdown ожидает 60 секунд, не выполняя никаких
действия. Администратор может отменить
перезагрузку или выключение устройства, если в
течении этого времени успеет выполнить команду:

shutdown /a

После отмены выключения появится


всплывающее сообщение в нижнем правом углу
экрана: «Выход из системы отменен.
Запланировано завершение работы отменено».

Перезагрузить Windows немедленно

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


немедленно, не ожидая стандартные 60 секунд,
нужно указать значение 0 для параметра /t.
Например, для немедленной перезагрузки
компьютера:

shutdown /r /t 0

Очень важный ключ /f. Я использую его


практически всегда при выключении или
перезагрузки серверов Windows. Данный атрибут
обеспечивает принудительное завершение всех
запущенных программ и процессов, не ожидая
подтверждения от пользователя (не будем же мы
ждать подтверждения закрытия программ от всех
пользователей на терминальном сервере, его
можно просто не дождаться).

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


компьютера с автоматическим запуском всех
зарегистрированных приложений после
перезагрузки (имеются в виду приложения,
зарегистрированные в системе с использованием
функции API RegisterApplicationRestart).

shutdown /g

Ярлык для перезагрузки компьютера

Для удобства пользователей вы можете создать на


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

Можно распространить такой ярлык на


компьютеры пользователей через GPO.

Перезагрузка Windows в определенное время

Чтобы всегда перезагружать/выключать


компьютер или сервер в определенное время, вы
можете добавить команду shutdown в
планировщик заданий Windows taskschd.msc.

Например, следующее задание планировщика


будет ежедневно перезагружать компьютер ночью
в 0:00.

Либо вы можете создать новое задание


планировщика из 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

Задание планировщика также можно


распространить на компьютеры с
помощью групповых политик.

Перезагрузка удаленных
компьютеров командой shutdown

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


по сети, для этого у вас должен быть к нему
сетевой доступ, а учетная запись, из-под которой
запускается команда shutdown должна входить в
группу локальных администраторов на удаленном
компьютере (сервере):

shutdown /r /t 120 /m \\192.168.1.100

Вы можете предоставить права на


удаленную перезагрузкуWindows
пользователям без прав локального
администратора.

Если все указанные условия выполняются, но при


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

reg add

"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"

/v "LocalAccountTokenFilterPolicy" /t

REG_DWORD /d 1 /f

На удаленном компьютере должны быть


включены правила Windows Defender
Firewall, разрешающие удаленный доступ
черезWMI и SMB.

Вы можете включить эти правила


файервола с помощью PowerShell:

Get-NetFirewallrule -name

WMI-RPCSS-In-TCP,WMI-WINMGMT-In-TCP,FPS-SMB-In-TCP|

Enable-NetFirewallRule

Или настроить правила Windows Defender


Firewall через GPO.

Если для подключения к удаленному компьютеру


нужно указать учетные данные пользователя,
можно использовать команду:

net use \\192.168.31.10 /u:corp\username

shutdown /s /t 60 /f /m \\192.168.31.10

Если вам необходимо удаленно перезагрузить


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

$sh_msg = "Ваш компьютер будет

автоматически перезагружен через 10 минут.

Сохраните свои файлы и закройте запущенные

программы"

$sh_delay = 600 # секунд

$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"

Графический интерфейс команды shutdown

Для тех, кому не комфортно работать в командной


строке, есть графический интерфейс для команды
shutdown, чтобы его вызвать, наберите:

shutdown /i

Как вы видите, в диалоге удаленного завершения


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

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

В PowerShell есть две команды для выключения и


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

Для перезагрузки Windows выполните:

Restart-Computer -force

Чтобы выключить компьютер:

Stop-Computer

По умолчанию перезагрузка начнется через 5


секунд. Можно увеличить задержку перед
перезагрузкой:

Restart-Computer –delay 15

У обоих командлетов есть параметр


–ComputerName , который позволяет задать

список удаленных компьютеров.

Например, чтобы удаленно выключить два сервера


Windows:

Stop-Computer -ComputerName "Server01",

"Server02"

Можно указать учетные данные администратора


для подключения к удаленному хосту:

$Creds = Get-Credential

Restart-Computer -ComputerName $Names

-Credential $Creds

Для подключения к удаленным компьютерам


используется WMI и DCOM (он должны быть
включен и настроен). Если WMI не настроен, при
запуске команды появится ошибка:

Restart-Computer : Failed to restart the


computer wks-t1122h2 with the following e
rror message:
Access is denied.
Exception from HRESULT: 0x80070005 (E_ACC
ESSDENIED).

Если на удаленном компьютере настроен WinRM


(Windows Remote Management), вы можете
использовать для подключения WSman вместо
WMI:

Restart-Computer -ComputerName wks-t1122h2

-Protocol WSMan

Если на удаленном компьютер есть активные


сессии пользователей, при запуске
Restart-Computer появится ошибка:

Restart-Computer : Failed to restart the


computer wks-t1122h2 with the following e
rror message:
The system shutdown cannot be initiated b
ecause there are other users logged on to
the computer.

Вы можете узнать имя пользователя с


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

qwinsta /server:wks-t1122h2

Для принудительной перезагрузки нужно добавить


параметр -Force:

Restart-Computer -ComputerName wks-t1122h2

–Force

В журнале событий Windows с EventID 1074


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

С помощью параметра -For можно перезагрузить


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

Restart-Computer -ComputerName wks-t1122h2

-Wait -For WinRM

Restarting computer wks-t1122h2


Verifying that the computer has been rest
arted.

Можно дождаться запуска службы


удаленного рабочего стола (RDP) или
любой другой службы Windows:

Restart-Computer -ComputerName

wks-t1122h2 -Wait -For TermService

Если нужно одновременно перезагрузить


несколько хостов, можно использовать
возможности параллельного запуска команд в
версии PowerShell 7.x.

Например, вы можете получим список Windows


Server в определенном контейнере (Organizational
Unit) Active Directory с помощью командлета
Get-ADComputer и перезагрузить их одновременно:

$Computers = (Get-ADComputer -Filter

'operatingsystem -like "*Windows server*"

-and enabled -eq "true"' -SearchBase

"OU=Servers,DC=winitpro,DC=loc").Name

$Computers | ForEach-Object -Parallel {

Restart-Computer -ComputerName $_ -Force}

-ThrottleLimit 3

Предыдущая Следующая статья


статья

Читайте далее в разделе PowerShell Windows 10


Windows 11 Windows Server 2019 Windows Server 2022

Установка средств администрирования RSAT в


Windows 10 и 11

Вывод уведомлений пользователям с помощью


PowerShell

Модуль PSWindowsUpdate: управление


обновлениями Windows из PowerShell

Защита RDP
от подбора Просмотр и
паролей с анализ логов
блокировкой RDP
IP правилами подключений
Windows в Windows
Firewall

Stūra un izvelkamie dīvāni Поиск и


Lai dīvānu sajustu, tajā obligāti jāapsēžas. Gaidām Jūs salonā!
удаление
Dīvani un dīvani писем в
Iepirkties
Не работает
ящиках
поиск в
Exchange

Вам также может понравиться