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

Обновлено: 04.07.2024

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

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

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

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

GPO-RestartNotificationsAllowed-001.jpg

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

GPO-RestartNotificationsAllowed-002.jpg

Еще хуже, если компьютер в принципе не выключается и через месяц на недообновленную систему попытается установиться следующее обновления, последствия могут быть самые разнообразные, которые опять же дадут о себе знать в неподходящее время. Для уведомления пользователя о необходимости перезагрузки существует политика Настройка уведомлений об обязательном автоматическом перезапуске для обновлений, но она не работает. Скорее всего это связано с тем, что настройку уведомлений переместили из классической Панели управления в приложение Параметры, где она располагается в Обновления и безопасность - Центр обновления Windows - Дополнительные параметры.

GPO-RestartNotificationsAllowed-003.jpg

В настоящий момент нет способа включить этот параметр при помощи политик, но можно управлять им через реестр. За включение показа уведомлений отвечает следующий ключ реестра:

Windows 10 1703 - 1803 включительно

Windows 10 1809 и последующие выпуски

Ключ имеет тип REG_DWORD и значение 1 (десятичное) включает показ уведомлений.

К счастью, настройки реестра тоже можно распространять через GPO. Для этого создадим новую политику, откроем ее на редактирование, перейдем в Конфигурация компьютера - Настройка - Конфигурация Windows - Реестр, где добавим новую запись со следующими значениями полей:

  • Действие - Обновить
  • Куст - HKEY_LOCAL_MACHINE
  • Путь раздела - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings
  • Имя параметра - RestartNotificationsAllowed2
  • Тип параметра - REG_DWORD
  • Значение - 1
  • База - десятичный.

GPO-RestartNotificationsAllowed-004.jpg

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

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

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

Start — Control Panel — Administrative Tools — оснастка: Group Policy Management

после разворачиваем до уровня структуры Active Directory текущего домена : Group Policy Management — Forest: polygon.local — Domain — Polygon.local,

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

здесь создаем новую политику (Советую на каждую задачу создавать свою политику, так проще отслеживать что не работает и что работает) с именем, как обычно я именую все свои политики: через правый клик мышью на 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 и закрываем оснастку управления групповыми политиками.

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

Make sure that the default admin$ share is enabled on W7X86.

Проверяем на рабочей станции W7X86 что после перезагрузки политика успешно назначилась и в планировщике задания создалось задание столь необходимой важности:

(В представленных скриншотах у меня фигурирует время 23:19 это время когда я писал заметку и тестировал, но на работе у меня время точно соответствует времени об окончании рабочего дня для всех сотрудников: 21:30)

Пуск — Панель управления — Администрирование — Планировщик Заданий

Созданная задача в планировщике

C:\Users\alektest.POLYGON>gpresult /r

Проверяем применилась ли политика через gpresult

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

C:\Users\alektest>gpupdate

Обновление политики пользователя завершено успешно.

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

Перезагружаем рабочую станцию.

Если же ее и после этого нет, то значит у Вас скорее всего проблемы в домене, к примеру время на сервере и на рабочих станциях различно, к примеру не установлено обновление: Windows6.1-KB2998527-x86.msu

Как только наступило назначенное время рабочая станция успешно перезагружается.

В назначенное время компьютер выключается

Пуск — Панель управления — Администрирование — Просмотр событий — Журналы Windows — Система

Код события (Event ID): 1074

Дата: 07.10.2015 23:55:00

В логах системы формируется событие на выключение компьютера

Но не заходить же на каждую станцию и проверять, а отработало ли задание — можно конечно же и так, к примеру поручить сотрудникам сделать выборочную проверку. А вообще можно и по другому, к примеру у Вас поднят сервис централизованного логирования (к примеру LogAnalyzer) и уже в нем, произвести сортировку по данному Event ID коду. Да может это все не зачем, все существующие компьютеры в домене Вы знаете и они же также стоят у Вас в инвентаризации, как это сделано у меня через GLPI. Надеюсь я этой заметкой помог не только себе, но и многим другим в решение аналогичной задачи. На этом все, с уважением автор блога — Олло Александр.

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

Мои предпочтительные языки сценариев от наиболее до наименее желательных: PHP, javascript, Bash, Python (очень мало знаю), VB (знаю, но не нравится)

@JM - нет, если в BIOS установлено «Возобновить предыдущее состояние питания».

Если GPO не ваша вещь, и вы хотите использовать второй вариант Марка Хендерсона ( shutdown /m пакетный режим), вы можете упростить свою работу, выполняя пакетное отключение, поэтому он будет выполнять их параллельно, а не последовательно. Это требует PowerShell со стороны административной станции, но это очень изящно .

Этот фрагмент порождает столько фоновых заданий, которые выполняются параллельно, сколько машин в $ ComputerList. Это может сделать отключение All The Things намного быстрее.

Это интересное решение - если у вас много компьютеров для перезагрузки, я очень рекомендую это решение, так как оно будет запускать команды выключения параллельно. Мне любопытно, почему вы используете команду shutdown, а не командлет Restart-Computer. @CharlesBurge На это ответили 5 лет назад, и PS3 не получил широкого распространения. Также это демонстрирует технику запуска команд в других системах. В 2017 году мы просто делали все это в PowerShell и не беспокоились о командах. Времена меняются.

Это можно сделать с помощью параметров групповой политики, создав новую запланированную задачу, которая будет выполняться каждую ночь в определенное время. Команда для этой задачи должна быть shutdown /r /t 0 . Затем вы можете связать этот объект групповой политики с подразделениями или подразделениями, в которых есть ваши компьютеры.

Возможно, вы захотите использовать опцию «Запускать эту программу с произвольным интервалом», установленную где-то между 10-15 минутами. Если каждый компьютер включается одновременно, это может быть вредно для ваших выключателей, если вы не будете осторожны. Вы также можете выбрать вариант запуска задачи только в том случае, если компьютер простаивал в течение x часов, если кто-то тянет всю ночь. Вы не хотите убивать труд на целую ночь, перезагружая кого-то, кто пытается сделать крайний срок.

Я не знаком с настройкой запланированных задач с помощью объекта групповой политики, поэтому мне интересно: если машина будет перемещена из одного подразделения в другое без заданной задачи, исчезнет ли заданная задача или она останется после первого применения?

Создайте запланированное задание с помощью объекта групповой политики, который запускается shutdown /r /f /t 0 или shutdown /g /f /t 0 на каждой машине, которую вы хотите перезагрузить. (проверьте shutdown /? для более подробной информации.

Создайте пакет, который запускается shutdown /m [computer name] /r /f /t 0 с центрального компьютера (возможно, контроллера домена?). Зациклите его для каждого компьютера, который вы хотите перезагрузить (измените [computer name] ). Это означает, что компьютер не будет перезагружен, если он по какой-либо причине недоступен, и его необходимо запускать с учетной записи, имеющей права на перезагрузку компьютеров.

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

Имеем Windows Server 2012 R2. Задача - автоматически перезагружать сервер каждый понедельник в 5 утра. Приступаем.

Запускаем Планировщик заданий, создаём в нём папку "reboot":

reboot

Делаем Create Basic Task. Запускается мастер:

reboot

Указываем Name, Description:

reboot

reboot

Выбираем период Weekly. Next:

reboot

Указываем начало - ближайший понедельник 5 утра. Ставим галку Monday. Next:

reboot

Выбираем Start a program. Next:

reboot

В Program/script: пишем:

В Add arguments (optional):

  • /r - перезагрузка,
  • /f - принудительное закрытие всех приложений,
  • /t 90 - время ожидания до начала перезагрузки 90 сек,
  • /d p:0:0 - причины перезагрузки для журнала. В данном случае, мы указали: p - запланированная перезагрузка, 0:0 - "Other (planned)",
  • /c комментарий в свободной форме длинной не более 512 символов. Комментарий будет показываться юзерам 90 секунд. За это время можно отменить перезагрузку командой shutdown.exe /a.

Список параметров и причин перезагрузки можно посмотреть shutdown.exe /?

reboot

Мастер не доделали, кликаем Finish. Создаётся задача - редактируем её.

win

Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges. Ok:

reboot

Нас попросят ввести имя пользователя, от имени которого будет выполняться задание. И пароль. Готово:

win

Сам пока не проверял результатов. В ближайший понедельник посмотрим.

Две недели прошло - шедулер нормально перезагружает сервер по понедельникам.


СервераНачальный уровень

Запускаем планировщик заданий любым удобным способом. Например, находим в панели управления или при нажатии сочетания клавиш Пуск+R, вводим в строку taskschd.msc или щелкаем правой кнопкой на меню Пуск и выбираем «Управление компьютером».

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

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

Создаем простую задачу. Обязательными полями для заполнения являемся Имя, а поле Описание опционально, заполните его при необходимости.

Окна мастера создания простой задачи.

Окна мастера создания простой задачи.

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

Мастер создания простой задачи.

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

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

Дальше выбираем «Запустить программу» в качестве действия для задачи. Финальным аккордом указываем приложение shutdown.exe используемое в операционной системе как утилита для выключения, перезагрузки или завершения сеанса пользователя.

Завершаем настройку и ждем время указанное в графике для проверки результата.

shutdown /r /f

shutdown /r /f

Читайте также: