Русский English

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

25 декабря 2016 г.

shutdown girl

Требуется выключать парк компьютеров с установленной Windows подключенной к домену организации по расписанию в 22:00 используя штатное программное обеспечение.

Решение

Для выключения воспользуемся простым bat скриптом

@echo off
SetLocal EnableExtensions

Set Comps=PC1 PC2 PC3
For %%I In (%Comps%) Do (Ping -n 1 -w 1 %%I >nul && Shutdown -m \\%%I -s -t 10 -f)

Рассмотрим скрипт по подробнее.

@echo off – отключение стандартного вывода команд на командный терминал;

SetLocal EnableExtensions – включение расширений командного процессора;

Set Comps=PC1 PC2 PC3 – определение переменной Comps, содержащей список Netbios имён выключаемых компьютеров разделённых пробелами. В качестве примера установлены имена PC1 PC2 PC3.

For %%I In (%Comps%) – запускаем цикл по списку имён;

Ping -n 1 -w 1 %%I >nul – проверяем доступность компьютера по сети одним ICMP пакетом с таймаутом в 1 мс. Весь вывод программы перенаправляется в устройство nul.

&& Shutdown -m \%%I -s -t 10 -f – если программа ping выполнена успешно, то запускается shutdown для компьютера с именем, записанным в переменной %%I с таймаутом в 10 секунд.

Для регулярного выключения компьютера по расписанию воспользуемся Планировщиком заданий Windows. Он находится Пуск -> Все программы -> Стандартные -> Служебные -> Планировщик заданий. Для его настройки выполним следующую последовательность шагов.

В правом меню «Действия» нажимаем на «Создать задачу…».

create task

Присваиваем имя задачи, например, Reboot.

Устанавливаем переключатель «Выполнять вне зависимости от регистрации пользователя». Нажав на кнопку «Изменить» выбираем пользователя, от имени которого будет запускаться задание. Т. к. задние должно выполняться на удалённых компьютерах, то указать нужно доменного администратора.

Далее переходим на вкладку «Триггеры». Нажимаем на кнопку «Создать…» для инициализации времени запуска события.

set task time

На панели «Параметры» выбираем «Ежедневно», запуск выполнения задания определяем в 22:00:00. Галочка «Включено» должна стоять.

Далее переключаемся на вкладку «Действия». Нажимаем на кнопку «Создать…»

action task

В поле ввода «Программа или сценарий:» устанавливаем полный путь до скрипта перезагрузки. Нажатием на кнопку «ОК» мастер установки возвращается к родительскому окну «Создание задачи». Далее ещё раз нажимаем на кнопку «ОК».

Установка пользователя от имени которого производится запуск

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

На этом настройка завершена. Следует отметить, если производится выполнение задания на компьютерах находящихся в рабочей группе, то следует позаботиться о том, чтобы на них на всех компьютерах был один и тот же пользователь с административными привилегиями и было доступно подключение к административной папке Admin$. Таким образом bat скрипт модифицируется в следующий:

@echo off
SetLocal EnableExtensions

Set Comps=PC1 PC2 PC3
For %%I In (%Comps%) Do (Ping -n 1 -w 1 %%I >nul && net use \\%%I\Admin$ Password /user:Admin  && Shutdown -m \\%%I -s -t 10 -f)