В сети нашей компании эксплуатируется множество рабочих станций, поэтому я решил написать сценарий регистрации с целью автоматизации процесса планирования. В сценарии ScheduleDefrag.cmd используется утилита Schtasks (для запуска планировщика задач из командной строки). С ее помощью создается задание с именем Weekly Defrag. Это задание задействует файл defrag.exe для запуска приложения Disk Defragmenter из командной строки для дефрагментирования жесткого диска.

Сценарий ScheduleDefrag.cmd первым делом проверяет, не запланировано ли задание Weekly Defrag ранее:

Schtasks /Query /FO LIST | Find /c "Weekly Defrag"

В этой строке команда Schtasks с параметром/Query и переключателем/FO LIST используется для считывания всех заданий, уже запланированных к запуску в системе. Результаты передаются по конвейеру (|) команде Find, которая выполняет операцию поиска строки Weekly Defrag.

Если задание Weekly Defrag не существует, сценарий создает его с помощью следующей команды Schtask:

Schtasks/Create /RU "SYSTEM" /SC WEEKLY /D FRI
/TN "Weekly Defrag" /TR "%systemroot%system32defrag.exe
%homedrive%" /ST 12:00:00 /SD 10/01/2009

Параметр /Create предписывает команде Schtasks создать назначенное задание. Я остановлюсь на функциях переключателей, использовавшихся мною с упомянутым параметром, чтобы вы могли модифицировать сценарий в соответствии с потребностями планирования сеансов дефрагментации в своей компании.

Переключатель /RU указывает на учетную запись, от имени которой будет выполняться задание. В данном случае задание будет выполняться с использованием учетной записи System. Вы можете задействовать другую системную учетную запись — NT AUTHORITYSYSTEM.

Переключатель /SC задает частоту выполнения задания. В рассматриваемом примере его нужно выполнять еженедельно, но существуют и другие варианты, например ежедневно и ежемесячно. Переключатель /D задает день недели, в который будет выполняться задание. Переключатель /TN вводит имя назначаемого задания. Переключатель/TR описывает планируемое задание. В данном случае утилита Schtasks будет запускать программу defrag.exe на диске %homedrive%. Переменная окружения %homedrive% представляет один из локальных накопителей компьютера; обычно это диск C. При написании сценариев я стараюсь как можно чаще использовать переменные окружения. Если вы будете жестко программировать данные, нужно будет модифицировать сценарий всякий раз, когда эти данные изменяются.

Переключатель /ST указывает на время запуска задания. Часы следует перевести в 24-часовой формат и вводить данные в виде чч: мм, где чч — часы, а мм — минуты.

Переключатель /SD вводит дату начала выполнения задания. Следуйте формату мм/дд/гггг, где мм — месяц, дд — день, а гггг — год.

Существует множество других переключателей, используемых с командой /Create утилиты Schtasks. Чтобы получить список этих переключателей, введите в командной строке

Schtasks/Create/?

или откройте Web-страницу Schtasks.exe на сайте MSDN для разработчиков.

Чтобы настроить сценарий (см. листинг) в соответствии с конкретными требованиями к планированию, правой кнопкой мыши щелкните на файле, в раскрывшемся меню выберите пункт Edit, внесите необходимые изменения в команду Schtasks/Create и сохраните файл.

Чтобы назначить выполнение задания Disk Defragmenter на большом числе компьютеров, можно запустить сценарий ScheduleDefrag.cmd в качестве сценария регистрации, а если нужно назначить выполнение Disk Defragmenter всего лишь на нескольких системах, запускайте его локально. Для запуска файла в качестве сценария регистрации необходимо создать или открыть существующий объект групповой политики Group Policy Object (GPO), перейти в раздел User SettingsWindows SettingsScriptsLogon и добавить код ScheduleDefrag.cmd в диалоговое окно Logon scripts. Для выполнения сценария ScheduleDefrag.cmd в локальном режиме дважды щелкните на нем или запустите его из командной строки.

Крис Бетлах (cbetlach@HALDEMANHOMME.com) – менеджер по ИТ в компании HaldemanHomme, имеет сертификаты A+, Net+ и MCP