Выполнение сценариев завершения работы

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


Выполнение сценариев завершения работы

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

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

Просмотр полной версии : Проблема с выключением компьютера

Имеется компьютер Hewlett-Packard (Celeron Prescott 2.8, Intel 865, 512Mb DDR400, 80GB IDE Seagate) с установленной Windows XP SP2 32bit.
Проблема в следующем: при выключении или перезагрузке компьютера (пуск-завершение работы), появляется надпись “выполнение сценариев завершения работы” и с этой надписью компьютер продолжает работать минут 15 (особенно напряжно когда надо бысто перегрузить) и только после этого выключается (перезагружается).
В системном журнале при этом пишется следующее: “Выполнение сценариев объекта групповой политики превысило допустимый интервал времени и будет прекращено. ” Источник – Winlogon, Код события 1217.
Как решить проблему?

Посмотри разделы:
HKLMSOFTWAREPoliciesMicrosoftWindowsSystemSc riptsShutdown
HKCUSoftwarePoliciesMicrosoftWindowsSystemSc riptsLogoff

Там должны быть прописаны скрипты на выключение компа и выход из системы. Попробуй их удалить (предварительно сделав бэкап реестра).

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

Попробуй еще так покопать:
набери в ком. строке gpedit.msc, появится консоль групповых политик, там как раз сценарии на вкл/выкл.

Дополнительные сведения
Для завершения данной процедуры необходимо иметь право “Редактирование параметров” для редактирования объекта групповой политики. По умолчанию члены группы безопасности “Администраторы домена”, “Администраторы предприятия” или “Создатели-владельцы групповой политики” имеют право “Редактирование параметров” для редактирования объекта групповой политики.
Сценарии завершения работы выполняются с правами локальной системы и имеют полные права, связанные с запуском в качестве локальной системы.
Установка одновременного выполнения сценариев завершения может привести к замедлению процесса завершения работы.

Удаленный доступ к рабочему столу по протоколу RDP широко используется для работы не только с серверами, но и с рабочими станциями, как для удаленной работы, так и в целях администрирования. Однако есть некоторые ограничения, в частности в среде клиентской ОС нельзя управлять параметрами питания, даже имея права локального администратора. В некоторых случаях это способно взывать затруднения, поэтому если вы до сих пор не знаете, как выключить или перезагрузить клиентскую версию ОС через RDP – эта статья для вас.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Несмотря на кажущуюся нелогичность, определенный смысл в таком поведении есть. Серверные ОС администрируют профессионалы (как минимум в теории), которые должны отдавать себе отчет о возможных последствиях своих действий. С другой стороны, удаленно выключив ПК так просто включить его уже не получится, в большинстве случаев потребуется физическое присутствие, поэтому решение убрать подобную функцию от простых пользователей выглядит вполне обоснованно. Администраторы, следуя этой логике, должны уметь управлять питанием и иными способами.

Но как показывает практика, умеют это не все. Ничего страшного в этом нет, как говорил мой школьный учитель: спросить – стыд минуты, не знать – стыд всей жизни.

Графическая оболочка

На самом деле “проблема” решается не просто, а очень просто. Выйдя на рабочий стол достаточно нажать Alt+F4 чтобы получить стандартный диалог завершения работы.

:/>  Как обновить Windows 10 до новой версии


Выполнение сценариев завершения работы

Выполнение сценариев завершения работы

Беда в том, что этого экрана через RDP вы уже не увидите. Да и открытые приложения – это полбеды, хуже, когда систему не дает выключить или перезагрузить зависшее приложение. В этом случае придется искать иные методы.

Командная строка

Как обычно, если графические инструменты не помогают, на помощь администратору приходит командная строка. Для того, чтобы управлять питанием компьютера с ее помощью не надо обладать особыми знаниями, достаточно запомнить одну простую команду. Нажмите Win+R или Пуск – Выполнить и введите следующие команды:

shutdown -s -f -t 0

shutdown -r -f -t 0


Выполнение сценариев завершения работы

Разберем ключи команды подробнее:

Утилита PsShutdown от Sysinternals

Если штатные возможности вас по какой-либо причине не устраивают, то можно воспользоваться альтернативой – утилитой PsShutdown от Sysinternals. Разместите скачанный файл в любом удобном месте, лучше всего в одном из указанных в переменной PATH, либо добавьте туда ее расположение, это позволить запускать ее по короткому имени, без указания пути. Синтаксис утилиты похож на синтаксис стандартной, но есть некоторые отличия, так для выключения выполните:

psshutdown -k -f -t 0

а для перезагрузки:

psshutdown -r -f -t 0

Поясним используемые ключи:

Если вместо ключа -k использовать для выключения ключ -s, то система завершит работу без выключения питания, старожилы должны хорошо помнить:


Выполнение сценариев завершения работы

Кроме того, данная утилита позволяет управлять питанием других ПК по сети. Если честно, то работать по сети умеет и штатная утилита shutdown, достаточно указать ключ:

Но есть один существенный недостаток – команда выполняется в контексте запустившего его пользователя, поэтому вы из дома не сможете выключить рабочий ПК, даже имея доступ в корпоративную сеть через VPN и имея учетные данные администратора сети.

PsShutdown данного недостатка лишена и позволяет указывать учетные данные для подключения к удаленному ПК, например:

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

А затем в ветвь реестра

добавить параметр типа DWORD с именем

и установить его значение равным 1. После этого компьютер потребуется перезагрузить.

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

Как видим в этот раз команда отработала успешно.

PowerShell

Использовать PowerShell для выключения или перезагрузки компьютера, это сродни стрельбы из пушки по воробьям, но в ряде случаев может оказаться полезным.

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

Ключ -Force в данном случае аналогичен ключу -f команды shutdown и предполагает принудительное завершение работы мешающих выключению приложений.

Также PowerShell можно использовать для управления питанием по сети, например, можно выключить удаленный ПК командой:

При этом работа через PowerShell более безопасна, так как пароль не вводится открытым текстом и не остается в истории команд. Для аутентификации используются стандартные механизмы ОС.

Как видим, для управления питанием в ОС Windows доступны самые разнообразные инструменты – на любой вкус и цвет. При этом все они доступны внутри терминальной сессии, какой из них использовать – дело личного вкуса и предпочтений.

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

Не будем срываться с места в карьер, начнём с самого начала. А начало – это основная команда для выключения компьютера, которую мы будем использовать. В ОС Windows для завершения работы достаточно передать системе команду с нужными параметрами.

В принципе, команду shutdown можно выполнять разными способами:

Все три способа схожи, поддерживают одни и те же параметры, поэтому мы не будет заострять на этом внимание и весь процесс будем выполнять в консоли, то есть в командной строке системы Windows.

Как же это работает? Чтобы компьютер выключился автоматически, то есть без необходимости лезть в меню “Пуск” и нажимать там кнопку “Завершение работы”, нам нужно вызвать следующую команду:

Через 30 секунд после выполнения произойдёт завершение работы системы. Кроме этого той же командой, но с иным параметром можно не выключить компьютер, а его. Вот как это будет выглядеть:

Опять же отметим, что остальные параметры для команды выключения и перезагрузки схожи, поэтому мы не будем повторять каждый набор дважды, а рассмотрим весь процесс автоматического выключения компьютера на примере команды shutdown -s, держа в уме, что всё то же самое применимо и к команде shutdown -r

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

:/>  Gpo фильтрация отказано безопасность – ПК портал

Параметры команды shutdown

Материал, описанный в статье, применим к большинству используемых на сегодняшний день версий операционной системы от компании Microsoft. Команды и способы их выполнения позволяют автоматически выключить компьютер на Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista и всё ещё сохраняющей своего верного пользователя Windows XP.

Теперь рассмотрим основные параметры команды shutdown, которыми мы будем пользоваться:

Для целей знакомства со способом автоматического выключения компьютера этого нам будет достаточно. Ниже мы добавим к приведённому набору другие команды, чтобы сделать использование функции shutdown ещё удобнее.
Полный список параметров для shutdown можно увидеть, выполнив в консоли следующую команду:


Выполнение сценариев завершения работы

Предназначение SHUTDOWN

Большинство пользователей выключает свой компьютер с помощью стартового меню, с помощью меню через Alt+F4, или просто нажав на кнопку питания ПК.

Альтернативой этому может стать команда (перевод с англ. «shutting down» — выключение). Функционал данной команды позволяет выключить ваш компьютер (как сразу, так и через некоторое время), перезагрузить его, ввести в режим гибернации, выйти из учётной записи. Также, задать особенности выключения в специальном графическом окне, совершить другие действия, позволяющие кастомизировать процесс выключения ПК под нужды конкретного пользователя.


Выполнение сценариев завершения работы

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

Как использовать SHUTDOWN

Вы можете активировать shutdown как с помощью классической командной строки, так и используя инструментарий «PowerShell». Также вы можете упростить работу с командой,  создав ярлык для её запуска на рабочем столе.

https://youtube.com/watch?v=wA7aj8w026A%3Ffeature%3Doembed

Функционал команды shutdown выглядит следующим образом


Выполнение сценариев завершения работы

Из всей обоймы ключей я бы отметил следующие:

shutdown /a – команда останавливает процесс выключения или перезагрузки. Может быть полезна в ситуации, когда служба обновления Виндовс (Windows Update) решила перезагрузить ваш компьютер (или когда вы или какие-либо сторонние программы запустили процесс перезагрузки);

shutdown /s – команда выключения ПК;

shutdown /r – команда перезагрузки PC;

shutdown /g – функционал ключа похож на shutdown /r (компьютер перезагружается), при этом вновь запускаются все зарегистрированные приложения;

shutdown /h – ввод компьютера в режим гибернации;

shutdown /l – выход из учётной записи текущего пользователя (log off);

shutdown /p – выключение компьютера без соответствующих предупреждений. Равноценна команде shutdown /s /f /t 0.

В статье Пакетные файлы (bat, батники) Windows мы подробно рассматривали основные правила создания бат-файлов и их синтаксис. Чтобы не повторяться лишний раз, в данной публикации будем описывать только те команды и параметры, которые будем применять для создания файлов, позволяющих запланировать автоматическое выключение компьютера.

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

Это очень легко, добавим функционала нашему bat-файлу. Для этого воспользуемся командой set, которая позволяет задавать пользовательские переменные. То есть, при запуске батника консоль будет спрашивать нас примерно следующее: “Через сколько секунд выключить компьютер?”, а мы каждый раз можем вводить нужное значение и жать клавишу . Вот как будет выглядеть код нашего батника:

Уже лучше, но можно усовершенствовать. Задавать время выключения в секундах не очень удобно. Мы будем использовать минуты (можно по аналогии настроить и часы). Однако, консоль Windows не поймёт нашего значения в минутах, поэтому для неё мы будем осуществлять перевод в секунды.
Вот как это будет выглядеть:

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

Автоматическое выключение компьютера через определённое время

Итак, переходим к практическому применению информации, которую мы собрали в первых двух главах.

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

shutdown -s -f -t 1800

Используемые параметры нам уже знакомы. А значение 1800 задаёт значение времени в секундах, через которое будет произведено завершение работы. То есть, 1800 секунд = 1800 секунд / 60 секунд в минуте = 30 минут. С этим проблем возникнуть не должно. После выполнения команды мы получим системное уведомление, о том, что запланировано завершение работы

:/>  Программа UltraIso: как пользоваться?

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

Но как быть, если, допустим, спустя минут 15 мы понимаем, что фильм досмотреть не успеем и нужно отменить автоматическое выключение? Чтобы отказаться от запланированного завершения работы Windows, необходимо выполнить следующую команду:

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

Это, собственно, всё, что нужно знать для автоматического выключения компьютера через заданное время. Но каждый раз вводить команду в консоль не очень удобно, поэтому ниже мы разберём, как написать бат-файл для автоматического выключения компьютера или его перезагрузки.

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

На данный момент мы имеем , каждый из которых выполняет свою функцию: выключение компьютера, перезагрузку и отмену запланированных действий.
Для начала напишем основную часть нового . Суть будет заключаться в том, чтобы спрашивать у пользователя, какое из трёх действий требуется выполнить, а потом уже переходить к той части, которая отвечает за нужную функцию.

Выбор функции зададим следующей строчкой (её, как и весь файл, можно отредактировать на своё усмотрение, как будет удобнее):

set /p answer=”выключить – 1, перезагрузить – 2, отменить – 0: ”

Здесь мы задаём новую переменную , значение которой вводится при каждом запуске файла и подтверждается нажатием клавиши .
Переход к нужной части бат-кода осуществляем командой goto, в данном случае строчка будет иметь следующий вид:

Начало каждой независимой части ознаменуем, соответственно, как :1, :2 и :0
Для грамотного выполнения сделаем завершение каждой части кода не командой pause, а командой exit, добавив перед закрытием окна двухсекундную задержку:

TIMEOUT /T 2
exit

И в завершении добавим раскрашивание текста разным цветом, в зависимости от выполняемой команды:

На выходе мы получим следующий код:

Каждая команда уже описана выше. Вот, как это работает:

Для удобства можно упаковать получившийся батник в и добавить к нему иконку. В итоге получится простая портативная программа для автоматического выключения и перезагрузки компьютера через заданный интервал времени: auto-shutdown-exe.

Автоматизируем процесс с помощью создания ярлыков

Также вы можете легко оформить нужную вам команду в виде ярлыка, размещённом на рабочем столе. Затем, когда вам необходимо выполнить указанную операцию, будет достаточно кликнуть по ярлыку, и команда будет выполнена.

Для осуществления этой операции выполните следующее:

Команда SHUTDOWN — примеры реализации

Давайте рассмотрим популярные примеры использования команды shutdown:

Пример №1. Выключаем питание компьютера немедленно

В командной строке наберите:

shutdown /s /t 0


Выполнение сценариев завершения работы

Пример №2. Выключаем питание компьютера с задержкой

В командной строке используйте команду:

shutdown /s /t 3600 (3600 – это время в секундах, в данном примере это 60 минут, т.е. один час). Вместо 3600 поставьте любое удобное для вас время, высчитав его показатель в секундах;


Выполнение сценариев завершения работы

Пример №3. Перезагружаем компьютер немедленно

shutdown /r /t 0

Пример №4. Переводим ПК в режим гибернации

Введите — shutdown /h/t 0

Пример №5. Завершаем сеанс текущего пользователя


Выполнение сценариев завершения работы

Пример №6. Останавливаем выключение компьютера

Если вы передумали выключать компьютер, или хотите воспрепятствовать такому выключению со стороны системы, то наберите в командной строке:

Пример №7. Перезагружаем удалённый компьютер по IP-адресу

shutdown /r /m \192.168.0.1

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


Выполнение сценариев завершения работы

Пример №8. Выключаем удалённый компьютер по его сетевому имени

shutdown /s /t 300 /m \COMP1

Команда выключает питание сетевого компьютера COMP1 через 5 минут (300 секунд).

Пример №9. Запускаем графическую утилиту showdown

После запуска на экране появится табличка «Диалог удалённого завершения работы».


Выполнение сценариев завершения работы

Настройте необходимые опции в графическом окне утилиты showdown

Пример №10. Перезагружаем ПК с восстановлением работы зарегистрированных приложений

Команда shutdown позволяет выполнять необходимые операции для выключения и перезагрузки вашего компьютера. Если же функционал данного инструмента вас не устроил, тогда можно обратиться к возможностям таких программ как «Таймер выключения», «Time PC», «Shutdown Scheduler» и других аналогов, позволяющих выключить ПК в заданное вами время.