Већина корисника и администратора користе се за употребу интерфејса графичке конзоле за креирање планираног задатка Сцхедулера (Виндовс Сцхедулер). Тасксцхд.мсц. Међутим, у разним скриптама и аутоматизованим задацима много је повољније користити могућности ПоверСхелл-а за креирање задатака планера. У овом ћемо чланку показати како помоћу ПоверСхелл-а (верзије 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рд
сцхтаскс / Рун / ТН "НевПсТаск"