- Команда Shutdown: выключение и перезагрузка Windows из командной строки
- Выключение Windows командой Shutdown
- Перезагрузка Windows
- Завершение сеанса пользователя
- Перевод компьютера в режим гибернации
- Перезагрузка компьютера с сообщением пользователям
- Отложенное выключение / перезагрузка компьютера
- Отмена выключения / перезагрузки компьютера
- Перезагрузить компьютер немедленно
- Запуск команды shutdown на удаленных компьютерах
- Графический интерфейс команды shutdown
- Ярлык для перезагрузки компьютера
- Блог IT для Windows
- Как выключить компьютер по расписанию
- Выключаем компьютеры по окончании рабочего дня
- На всю компанию от помощницы генерального директора пришло письмо с текстом на всех сотрудников компании:
- Я же как руководитель IT отдела знаю, что ни один вменяемый сотрудник компании ни когда не будет следовать данному прошению от генерального директора. Это же надо выключать компьютер, а потом когда пришел на рабочее место, включать и ждать пока он загрузится и заново ожидать покуда все необходимые для работы программы загрузятся. А я для себя воспринял текст данного письма, как призыв к действия — что мне нужно проработать данную задачу и распространить ее на все компьютеры компании. В связи с прошлой модернизацией контроллера домена уровня Server 2003 На Server 2008 R2 я получил возможность управлять рабочими станциями, как Windows XP так и Windows 7 которые присутствуют в моем подчинение. А имея опыт работы в крупных компаниях, я уже на подобие такого делал и поэтому для меня данная задача не представляет какую либо трудность. Рабочее время сотрудников варьируется , кто-то приходит в 07 утра и заканчивает в 19, но вот для каждого делать несколько политик ну уж нет, раз рабочий день с 07 утра до 21.00, то время в которое мне нужно все компьютеры выключить будет 21.30. А там если надо то компьютер можно включить обычным нажатием.
Команда 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.
Перезагрузка Windows
Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.
Завершение сеанса пользователя
Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:
Эта команда аналогично выполнению команды logoff.
Перевод компьютера в режим гибернации
Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:
Перезагрузка компьютера с сообщением пользователям
Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).
shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”
Отложенное выключение / перезагрузка компьютера
Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.
shutdown /s /t 600 /c «Сервер будет выключен через 10 минут. Сохраните свои документы!»
Пользователю будет выдано предупреждение о запланированном выключении: Ваш сеанс будет завершен.
Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин».
Отмена выключения / перезагрузки компьютера
После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратора может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:
После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено».
Перезагрузить компьютер немедленно
Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:
Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).
Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).
Запуск команды shutdown на удаленных компьютерах
Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):
shutdown /r /t 120 /m \\192.168.1.100
Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.
reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System» /v «LocalAccountTokenFilterPolicy» /t REG_DWORD /d 1 /f
Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого 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, чтобы его вызвать, наберите:
Как вы видите, в диалоге удаленного завершения работы вы можете добавить несколько компьютеров, которые нужно перезагрузить/выключить, указать текст уведомления и задать причину выключения для сохранения в журнале Windows.
Ярлык для перезагрузки компьютера
Для удобства пользователей вы можете создать на рабочем столе ярлыки для выключения или перезагрузки компьютера с нужными настройками. Такой ярлык может быть полезен для выполнения перезагрузки из RDP сессии, когда отсутствуют кнопки перезагрузки/завершения работы компьютера в меню Пуск.
Если вы хотите, чтобы ваш компьютер или сервер всегда выключался / перезагружался в определенное время, вы можете добавить команду shutdown с определенными параметрами в планировщик заданий Windows taskschd.msc.
Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.
Блог IT для Windows
Все про Windows, программное обеспечение, информационную безопасность, программирование
Как выключить компьютер по расписанию
Рассмотрим вариант автоматического выключения компьютера, с помощью планировщика заданий на примере сервера Windows 2008 R2.
Создайте текстовой документ с названием shutdown.
Скопируйте в него, ниже приведённый код:
shutdown.exe -s -t 00
Сохраните данный файл с расширением .bat.
Далее, откройте на компьютере Планировщик заданий (найти его можно в строке поиска).
Поскольку выключение на сервере уже настроено ранее, рассматривать будет его.
Если задание в планировщике уже есть, но не работает, попробуйте его изменить.
Далее необходимо создать простую задачу (если она уже есть, то изменить), где необходимо указать название задачи, пользователя и указать другие настройки.
На следующем шаге необходимо создать и настроить триггер.
В данном примере задача будет выполняться по определённым дням и в определённое время.
Получится должно так.
Далее, необходимо создать (изменить) Действие:
Действие: Запуск программы
Программа или сценарий: путь к вашему сохранённому файлу shutdown.bat
Созданное (изменённое) действие будет выглядеть следующим образом:
Далее необходимо создать и настроить Условия выполнения задания.
На последнем шаге настраиваем Параметры задания.
В итоге готовое задание должно выглядеть в планировщике заданий следующим образом.
Выключаем компьютеры по окончании рабочего дня
На всю компанию от помощницы генерального директора пришло письмо с текстом на всех сотрудников компании:
Напоминаю Вам о необходимости выключать компьютеры по окончанию рабочего дня
Я же как руководитель IT отдела знаю, что ни один вменяемый сотрудник компании ни когда не будет следовать данному прошению от генерального директора. Это же надо выключать компьютер, а потом когда пришел на рабочее место, включать и ждать пока он загрузится и заново ожидать покуда все необходимые для работы программы загрузятся. А я для себя воспринял текст данного письма, как призыв к действия — что мне нужно проработать данную задачу и распространить ее на все компьютеры компании. В связи с прошлой модернизацией контроллера домена уровня Server 2003 На Server 2008 R2 я получил возможность управлять рабочими станциями, как Windows XP так и Windows 7 которые присутствуют в моем подчинение. А имея опыт работы в крупных компаниях, я уже на подобие такого делал и поэтому для меня данная задача не представляет какую либо трудность. Рабочее время сотрудников варьируется , кто-то приходит в 07 утра и заканчивает в 19, но вот для каждого делать несколько политик ну уж нет, раз рабочий день с 07 утра до 21.00, то время в которое мне нужно все компьютеры выключить будет 21.30. А там если надо то компьютер можно включить обычным нажатием.
Подключаюсь к Домен Контроллеру и запускаю оснастку управления групповыми политиками:
Start — Control Panel — Administrative Tools — оснастка: Group Policy Management
после разворачиваем до уровня структуры Active Directory текущего домена : Group Policy Management — Forest: polygon.local — Domain — Polygon.local,
здесь создаем новую политику (Советую на каждую задачу создавать свою политику, так проще отслеживать что не работает и что работает) с именем, как обычно я именую все свои политики: через правый клик мышью на polygon.local → Create a GPO in this domain, and Link it here → GPO_Shutdown, т. к. политика у меня будет назначена на конкретные компьютеры (в последствии можно создать группу компьютеров и прилинковать ее к создаваемой политики), поэтому на вкладке Scope раздела Security Filter удаляем все, а назначаем имя вашей тестовой (пока) рабочей станции (в моем случае это W7X86) на которой будем тестировать работоспособность групповой политики, а позже уже добавим боевые компьютеры.
Теперь переходим к настройки данного шаблона групповой политики, на политике GPO_Shutdown через правый клик выбираем свойство → Edit и редактируем настройки ориентированные на компьютер (Computer Configuration)
GPO_Shutdown → Computer Configuration — Preferences — Control Panel Settings — Scheduled Tasks → далее правый клик на пустом месте справа, New → Scheduled task и приводим создаваемое задание к следующему виду:
Arguments: /s /c «ekonomim energy» /d p:0:0
Отмечаем пункт: Run As
User Name: POLYGON\ekzorchik
Confirm Password: 712mbddr@
отмечаем пункт: Enable (scheduled task runs at a specified time)
, где учетная запись ekzorchik — это учетная запись которая обладает правами «Администратора домена».
После переходим на вкладку: Schedule где указываем когда создаваемое задание прописанное групповой политикой на компьютерах локальной сети организации будет приведено в действие — мне нужно каждый день в 21.30
Scheduled Task: Daily
Start Time: 23:10:00 PM
Schedule Task Daily: Every 1 days
После нажимаем Apply и Ok и закрываем оснастку управления групповыми политиками.
Теперь чтобы политика применила на рабочую станцию, станцию пользователь должен перезагрузить, но вот всплывает на повестку дня еще одна задача — ждать когда же пользователь соизволит перезагрузить системы, станет ли не невмоготу работать на тормозящей или я как системный администратор помогу ему в этом единожды перед временем назначенным в этой политике.
Если задействуем утилиты psshutdown то нужно, чтобы на рабочей станции был доступ, в противном случаем увидим сообщение в консоли:
Make sure that the default admin$ share is enabled on W7X86.
Проверяем на рабочей станции W7X86 что после перезагрузки политика успешно назначилась и в планировщике задания создалось задание столь необходимой важности:
(В представленных скриншотах у меня фигурирует время 23:19 это время когда я писал заметку и тестировал, но на работе у меня время точно соответствует времени об окончании рабочего дня для всех сотрудников: 21:30)
Пуск — Панель управления — Администрирование — Планировщик Заданий
C:\Users\alektest.POLYGON>gpresult /r
если же политики в выводе выше нет, то принудительно подгружаем ее:
C:\Users\alektest>gpupdate
Обновление политики пользователя завершено успешно.
Обновление политики для компьютера успешно завершено.
Перезагружаем рабочую станцию.
Если же ее и после этого нет, то значит у Вас скорее всего проблемы в домене, к примеру время на сервере и на рабочих станциях различно, к примеру не установлено обновление: Windows6.1-KB2998527-x86.msu
Как только наступило назначенное время рабочая станция успешно перезагружается.
Что и требовалось, есть несколько моментов, а именно нет возможность контролировать, а отработало ли задание и сколько рабочих станций по заданию выключились. Исходя из этого если будет такая задача, то нужно будет писать скрипт и учитывать все параметры, а так данная заметка успешно применяется у меня, проверил ее на многих рабочих местах и результат положителен. Внимательный читатель может спросить, а как узнать что система была выключена по политики, а вот как в журнале рабочей станции по соответствующей работе формируется код (он же Event ID). Вот к примеру изменил время выключения, после рабочая станция выключилась, включил ее и вот сообщение с каким произошло выключение.
Пуск — Панель управления — Администрирование — Просмотр событий — Журналы Windows — Система
Код события (Event ID): 1074
Дата: 07.10.2015 23:55:00
Но не заходить же на каждую станцию и проверять, а отработало ли задание — можно конечно же и так, к примеру поручить сотрудникам сделать выборочную проверку. А вообще можно и по другому, к примеру у Вас поднят сервис централизованного логирования (к примеру LogAnalyzer) и уже в нем, произвести сортировку по данному Event ID коду. Да может это все не зачем, все существующие компьютеры в домене Вы знаете и они же также стоят у Вас в инвентаризации, как это сделано у меня через GLPI. Надеюсь я этой заметкой помог не только себе, но и многим другим в решение аналогичной задачи. На этом все, с уважением автор блога — Олло Александр.