Креирање посла планера помоћу ПоверСхелл-а

Већина корисника и администратора користе се за употребу интерфејса графичке конзоле за креирање планираног задатка Сцхедулера (Виндовс Сцхедулер). Тасксцхд.мсц. Међутим, у разним скриптама и аутоматизованим задацима много је повољније користити могућности ПоверСхелл-а за креирање задатака планера. У овом ћемо чланку показати како помоћу ПоверСхелл-а (верзије 2.0 и 4.0) креирате нове задатке за планирање Виндовс-а, извозите задатке у кмл датотеку и увозите их на друге рачунаре.

Претпоставимо да је наш задатак креирати задатак планера који би се покренуо када се систем покрене (или у одређено време), задатак би требао да изврши неку скрипту или наредбу ПоверСхелл-а..

Садржај:

  • Како створити посао планера у ПоверСхелл 2.0
  • Како креирати посао планера у ПоверСхелл 4.0 (Виндовс Сервер 2012 Р2)
  • Извези посао Планера у КСМЛ датотеку
  • Увезите посао планера из КСМЛ датотеке

Како створити посао планера у ПоверСхелл 2.0

У Поверсхелл 2.0 (Виндовс 7, Виндовс Сервер 2008 Р2) да бисте креирали понављајући посао (СцхедуледЈоб) из ПоверСхелл-а, морате користити ЦОМ интерфејс Распоред.Услуга.  У овом примјеру направићемо задатак планера, који би у вријеме покретања требао извршити одређену датотеку са ПоверСхелл скрипту. Задатак се врши са системским правима (Систем).

$ ТаскНаме = "НевПсТаск"
$ ТаскДесцриптион = "Покретање ПоверСхелл скрипте из распореда"
$ ТаскЦомманд = "ц: \ виндовс \ систем32 \ ВиндовсПоверСхелл \ в1.0 \ поверсхелл.еке"
$ ТаскСцрипт = "Ц: \ ПС \ СтартупСцрипт.пс1"
$ ТаскАрг = "Скривени ВиндовСтиле -НонИнтерацтиве -Екецутионполици неограничен -филе $ ТаскСцрипт"
$ ТаскСтартТиме = [датум] :: Нов.АддМинутес (1)
$ сервице = нев-објецт -ЦомОбјецт ("Распоред.Сервице")
$ сервице.Цоннецт ()
$ роотФолдер = $ сервице.ГетФолдер ("\")
$ ТаскДефинитион = $ сервице.НевТаск (0)
$ ТаскДефинитион.РегистратионИнфо.Десцриптион = "$ ТаскДесцриптион"
$ ТаскДефинитион.Сеттингс.Енаблед = $ труе
$ ТаскДефинитион.Сеттингс.АлловДемандСтарт = $ труе
$ триггерс = $ ТаскДефинитион.Триггерс
#хттп: //мсдн.мицрософт.цом/ен-ус/либрари/виндовс/десктоп/аа383915 (в = вс.85) .аспк
$ окидач = $ окидач. Створите (8)

Напомена. У овом случају се креира окидач који ради када се систем покрене - код 8. Потпуна листа кодова:

ТАСК_ТРИГГЕР_ЕВЕНТ0
ТАСК_ТРИГГЕР_ТИМЕ1
ТАСК_ТРИГГЕР_ДАИЛИ2
ТАСК_ТРИГГЕР_ВЕЕКЛИ3
ТАСК_ТРИГГЕР_МОНТХЛИ4
ТАСК_ТРИГГЕР_МОНТХЛИДОВ5
ТАСК_ТРИГГЕР_ИДЛЕ6
ТАСК_ТРИГГЕР_РЕГИСТРАТИОН7
ТАСК_ТРИГГЕР_БООТ8
ТАСК_ТРИГГЕР_ЛОГОН9
ТАСК_ТРИГГЕР_СЕССИОН_СТАТЕ_ЦХАНГЕ11

$ окр.СтартБоундари = $ ТаскСтартТиме.ТоСтринг ("гггг-ММ-дд'Т'ХХ: мм: сс")
$ окидач.Енаблед = $ труе
# хттп://мсдн.мицрософт.цом/ен-ус/либрари/виндовс/десктоп/аа381841(в=вс.85).аспк
$ Ацтион = $ ТаскДефинитион.Ацтионс.Цреате (0)
$ ацтион.Патх = "$ ТаскЦомманд"
$ ацтион.Аргументс = "$ ТаскАрг"
#хттп: //мсдн.мицрософт.цом/ен-ус/либрари/виндовс/десктоп/аа381365 (в = вс.85) .аспк
$ роотФолдер.РегистерТаскДефинитион ("$ ТаскНаме", $ ТаскДефинитион, 6, "Систем", $ нулл, 5)

Након извршења наредбе, нови задатак НевПсТаск ће се појавити у планеру.

Синтакса команди је прилично сложена, па су програмери додали посебан модул у ПоверСхелл Пацк (део Виндовс 7 Ресоурце Кит) Таскцхедулер, што увелико поједностављује процес креирања послова планера из ПоверСхелл 2.0. Након инсталирања модула, можете креирати задатак користећи сљедеће команде:

Увоз-модул ТаскСцхедулер $ таск = Нови задатак
$ таск.Сеттингс.Хидден = $ труе
Адд-ТаскАцтион -Таск $ таск -Патх Ц: \ Виндовс \ систем32 \ ВиндовсПоверСхелл \ в1.0 \ поверсхелл.еке -Аргументс „-Филе Ц: \ МиСцрипт.пс1“
Адд-ТаскТриггер -Таск $ задатак -Дневно - У „10:00“
Регистер-СцхедуледЈоб -Наме ”СхТаскПс” -Таск $ таск

Како креирати посао планера у ПоверСхелл 4.0 (Виндовс Сервер 2012 Р2)

У Виндовс Сервер 2012 Р2 и Виндовс 8.1, ПоверСхелл 3.0 и 4.0 су представили нове цмдлете за креирање послова планера: Ново-СцхедуледТаскТриггер, Региструјте се-СцхедуледТаск. Стварање задатка за планирање сада је много лакше и практичније..

Креирајмо задатак који се зове СтартупСцрипт_ПС, који сваки дан у 10:00 испод системског налога (СИСТЕМ) покреће ПоСх скрипту похрањену у датотеци Ц: \ ПС \ СтартупСцрипт.пс1. Задатак ће се изводити са повишеним привилегијама (дав "Покрени с највишим привилегијама").

$ Триггер = Ново-заказаниТаскТриггер -У 10:00 сати -Дневно
$ Усер = "НТ АУТХОРИТИ \ СИСТЕМ"
$ Ацтион = Нев-СцхедуледТаскАцтион -Екецуте "ПоверСхелл.еке" -Аргумент "Ц: \ ПС \ СтартупСцрипт.пс1"
Регистер-СцхедуледТаск -ТаскНаме "СтартупСцрипт_ПС" -Триггер $ Триггер -Усер $ Усер -Ацтион $ Ацтион -РунЛевел Хигхест -Форце

Савет. Ако желите да се задатак покрене сваки пут када се систем покрене, прва наредба треба да буде следећа:
$ Триггер = Ново-заказаниТаскТриггер -АтСтартуп
Ако се пријавите корисника:
$Триггер = Ново-заказаниТаскТриггер -АтЛогон

Проверите да ли се у планеру појавио нови задатак.

Извези посао Планера у КСМЛ датотеку

ПоверСхелл пружа могућност извоза тренутних поставки било ког задатака планера у КСМЛ текстуалну датотеку. Дакле, можете учитати параметре било којег задатка и дистрибуирати задатак било које сложености на друге рачунаре на мрежи. Задатак се може извозити и из ГУИ-ја заказивања задатака и из наредбене линије ПоверСхелл.

Наредба за извоз посла под називом СтартупСцрипт_ПС у датотеку СтартупСцрипт_ПС.кмл:

Екпорт-СцхедуледТаск "СтартупСцрипт_ПС" | датотека без датотеке ц: \ тмп \ СтартупСцрипт_ПС.кмл

Цмдлет Екпорт-СцхедуледТаск неће радити у ПоверСхелл 2.0, тако да је у Виндовс 7/2008 Р2 боље користити уграђени услужни програм за извоз поставки посла у КСМЛ датотеку сцхтаскс, чији излаз треба да буде преусмерен на текстуалну датотеку:

сцхтаскс / куери / тн "НевПсТаск" / кмл >> "ц: \ тмп \ НевПсТаск.кмл"

Савет. Подсјетимо да су се раније, за креирање и управљање задацима планера, углавном користиле могућности уграђеног услужног програма конзоле сцхтаскс.еке.

Увезите посао планера из КСМЛ датотеке

Након што се поставке задатака планера извезе у КСМЛ датотеку, оне се могу увести на било који други рачунар на мрежи помоћу графичке конзоле, СцхТаскс.еке или ПоверСхелл.

Цмдлет ће вам помоћи да увежете параметре задатка и региструјете их. Регистер-СцхедуледТаск.

Региструј-СцхедуледТаск -Ксмл (Гет-Цонтент "\\ Сервер1 \ публиц \ НевПсТаск.кмл" | оут-стринг) -ТаскНаме "НевПсТаск"

У програму ПоверСхелл 2.0 (Виндовс 7 / Сервер 2008 Р2) увоз послова је такође лакши помоћу услужног програма сцхтаскс. Први тим створиће нови задатак. Други ће је одмах покренути (без чекања да окидач ради).

сцхтаскс / цреате / тн "НевПсТаск" / кмл "\\ Сервер1 \ публиц \ НевПсТаск.кмл" / ру цорп \ ааиванов / рп Па $$ в0рд
сцхтаскс / Рун / ТН "НевПсТаск"

Напомена. Имајте на уму да овај пример приказује податке о рачуну под којима ће се задатак покренути. Ако информације о налогу нису наведене, онда зато они се не складиште у задатку; биће им затражено при увозу.