Gpo перезагрузка компьютера по расписанию
Как через групповые политики включить запрос на перезагрузку после установки обновлений для Windows 10
Windows 10 - во многом удивительная операционная система. Вот уже на протяжении многих лет разработчики пытаются кардинально пересмотреть пользовательский интерфейс и отказаться от старых инструментов настройки к новым параметрам. В итоге получается затянувшаяся жизнь "на два дома", когда одни настройки доступны только в панели управления, а другие только в параметрах. Но это еще полбеды, гораздо хуже, когда левая рука не знает, что делает правая и в итоге перестают работать такие мощные и привычные администратору вещи, как групповые политики.
Взаимоотношения между пользователями и автоматическим обновлением в Windows 10 нельзя назвать безоблачными. Сделав обновления обязательными, Microsoft, несомненно, стремилась сделать как лучше, но получилось, как всегда. Новая система с неочевидным поведением и невнятными настройками вызвала волну всеобщей критики, потому как начать перезагружаться компьютер мог в самый неподходящий момент.
Позже в настройки добавили рабочие часы, возможность отложить обновления и ряд политик, позволяющих еще более гибко настраивать поведение системы на уровне организации. Одна из таких политик - Не выполнять автоматическую перезагрузку при автоматической установке обновлений, если в системе работают пользователи. Она находится в Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Центр обновления Windows и при ее включении компьютера не будет перезагружен после установки обновлений до тех пор, пока в системе есть выполнивший вход пользователь, безотносительного того, работает он сейчас или нет.
Но при этом возникает другая проблема, пользователи Windows 10 перестают получать уведомления о том, что обновления установлены и компьютер требуется перезагрузить. Если рабочая станция не выключается продолжительное время, то это может привести к тому, что установка обновлений начнется при выключении или перезагрузке компьютера в самый неподходящий момент.
Еще хуже, если компьютер в принципе не выключается и через месяц на недообновленную систему попытается установиться следующее обновления, последствия могут быть самые разнообразные, которые опять же дадут о себе знать в неподходящее время. Для уведомления пользователя о необходимости перезагрузки существует политика Настройка уведомлений об обязательном автоматическом перезапуске для обновлений, но она не работает. Скорее всего это связано с тем, что настройку уведомлений переместили из классической Панели управления в приложение Параметры, где она располагается в Обновления и безопасность - Центр обновления Windows - Дополнительные параметры.
В настоящий момент нет способа включить этот параметр при помощи политик, но можно управлять им через реестр. За включение показа уведомлений отвечает следующий ключ реестра:
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
- База - десятичный.
Если ваш парк компьютеров содержит разные версии Windows 10, то создайте две записи с разными ключами реестра, применится только необходимая. Данную политику следует применять к OU (подразделениям) с компьютерами, т.к. применяется она на уровне компьютера.
Следует отметить - данный способ не блокирует опцию в приложении Параметры и она может быть выключена пользователем, но это не составляет особой проблемы, так как при очередном обновлении групповых политик параметр снова будет активирован.
Подключаюсь к Домен Контроллеру и запускаю оснастку управления групповыми политиками:
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 и закрываем оснастку управления групповыми политиками.
Теперь чтобы политика применила на рабочую станцию, станцию пользователь должен перезагрузить, но вот всплывает на повестку дня еще одна задача — ждать когда же пользователь соизволит перезагрузить системы, станет ли не невмоготу работать на тормозящей или я как системный администратор помогу ему в этом единожды перед временем назначенным в этой политике.
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
Как только наступило назначенное время рабочая станция успешно перезагружается.
Пуск — Панель управления — Администрирование — Просмотр событий — Журналы 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":
Делаем Create Basic Task. Запускается мастер:
Указываем Name, Description:
Выбираем период Weekly. Next:
Указываем начало - ближайший понедельник 5 утра. Ставим галку Monday. Next:
Выбираем Start a program. Next:
В 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 /?
Мастер не доделали, кликаем Finish. Создаётся задача - редактируем её.
Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges. Ok:
Нас попросят ввести имя пользователя, от имени которого будет выполняться задание. И пароль. Готово:
Сам пока не проверял результатов. В ближайший понедельник посмотрим.
Две недели прошло - шедулер нормально перезагружает сервер по понедельникам.
Запускаем планировщик заданий любым удобным способом. Например, находим в панели управления или при нажатии сочетания клавиш Пуск+R, вводим в строку taskschd.msc или щелкаем правой кнопкой на меню Пуск и выбираем «Управление компьютером».
Создаем простую задачу. Обязательными полями для заполнения являемся Имя, а поле Описание опционально, заполните его при необходимости.
Определяемся с желаемым графиком запуска нашей задачи автоматической перезагрузки компьютера. Мастер довольно гибко позволяем настроить время и интервалы выполнения (ежедневно, еженедельно, ежемесячно).
Дальше выбираем «Запустить программу» в качестве действия для задачи. Финальным аккордом указываем приложение shutdown.exe используемое в операционной системе как утилита для выключения, перезагрузки или завершения сеанса пользователя.
Завершаем настройку и ждем время указанное в графике для проверки результата.
Читайте также: