На всю компанию от помощницы генерального директора пришло письмо с текстом на всех сотрудников компании:

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

Я же как руководитель 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,

Создаю 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 и приводим создаваемое задание к следующему виду:

вкладка: Task

Action: Update

Name: GPO_Shutdown

Run: C:\Windows\system32\shutdown.exe

Arguments: /s /c "ekonomim energy" /d p:0:0

Отмечаем пункт: Run As

User Name: POLYGON\ekzorchik

Password: 712mbddr@

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

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

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

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. Надеюсь я этой заметкой помог не только себе, но и многим другим в решение аналогичной задачи. На этом все, с уважением автор блога — Олло Александр.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru