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