Геек Сцхоол Сазнајте како користити задатке у ПоверСхелл-у
ПоверСхелл има четири типа послова - Бацкгроунд Јобс, Ремоте Јобс, ВМИ Јобс и Сцхедулед Јобс. Придружите нам се када сазнамо шта су и како их можемо користити.
Обавезно прочитајте претходне чланке из серије:
- Сазнајте како да аутоматизујете Виндовс помоћу ПоверСхелл-а
- Учење коришћења команди у ПоверСхелл-у
- Учење како користити објекте у ПоверСхелл-у
- Учење обликовања, филтрирања и упоређивања у програму ПоверСхелл
- Научите да користите даљински рад у ПоверСхелл-у
- Коришћење ПоверСхелл-а за добијање информација о рачунару
- Рад са колекцијама у ПоверСхелл-у
И останите у току са остатком серије целу недељу.
Бацкгроунд Јобс
Све до сада, све што сам вам показао у ПоверСхелл-у је синхроно, што значи да откуцавамо нешто у љуску и не можемо заиста много да урадимо док та команда не заврши са извршавањем. Ово је место где се појављују позадински послови. Да бисте покренули позадину, посао једноставно проследи блок скрипте на Старт-Јоб цмдлет.
Старт-Јоб-Име ГетФилеЛист -Сцриптблоцк Гет-ЦхилдИтем Ц: \ т
Сада смо слободни да радимо све што желимо унутар љуске док се тај блок скрипта извршава у позадини.
Када започнете нови посао, ПоверСхелл креира нови објект задатка који представља тај посао. Листу свих послова можете добити у било ком тренутку покретањем цмдлет-а Гет-Јоб.
Објекти послова вам говоре о статусу послова. На пример, на слици изнад можемо видети да имамо БацкгроундЈоб зван ГетФилеЛист који је још увек покренут, али је већ почео да враћа податке. Ако у било ком тренутку одлучите да посао траје предуго, можете га лако зауставити тако што ћете га преусмерити у Стоп-Јоб.
Гет-Јоб-Наме ГетФилеЛист | Стоп-Јоб
Међутим, након што сте престали са радом, без обзира на податке које сте добили, све до тренутка када сте престали, још увек су доступни. Ипак, постоји нека шанса. У ПоверСхелл-у, када примите резултате за посао, они се бришу. Да би могли да остану, морате да наведете параметар задржавања прекидача Рецеиве-Јоб.
Гет-Јоб-Наме ГетФилеЛист | Рецеиве-Јоб -Кееп
Када завршите посао, најбоље је да га уклоните. Да бисте уклонили задатак, једноставно га одведите до цмдлета Ремове-Јоб.
Гет-Јоб-Наме ГетФилеЛист | Ремове-Јоб
Ово ће га уклонити са листе послова које враћа Гет-Јоб.
Ремоте Јобс
Пре неколико лекција, погледали смо како можемо да користимо ремотинг за извршавање ПоверСхелл команди на удаљеној машини помоћу Инвоке-Цомманд-а, али да ли сте знали да можете користити Инвоке-Цомманд да бисте покренули удаљени посао у позадини? Да бисте то урадили, једноставно додајте -АсЈоб параметар на крај ваше команде:
Инвоке-Цомманд -ЦомпутерНаме Фласх, Випер -редентни администратор -СцриптБлоцк гци -АсЈоб
То је била једноставна наредба и требала је до сада завршити са извођењем тако да погледамо статус наших послова.
Хмм, изгледа да није успио. Ово ме доводи до мог првог посла са послом. Када креирате нови посао било ког типа у ПоверСхелл-у, он креира један родитељски посао поред једног дјечјег посла за сваки рачунар против којег радите. Када користите цмдлет Гет-Јоб, он само приказује родитељске послове, а својство стања је најгори могући сценарио, што значи да чак и ако наредба није успјела да се покрене на једном од стотину рачунала, стање родитељских послова ће рећи није успео. Да бисте видели листу дечјих послова морате да користите параметар ИнцлудеЦхилдЈоб.
Ако погледате ближе, видећете да је посао заиста пропао само на једном рачунару, што нас доводи на следећи корак. Када покушате да добијете резултате за посао, ако наведете име или ИД родитељског посла, ПоверСхелл ће вратити податке са свих дечјих послова. Проблем је у томе што ако је дошло до грешке у једном од дјечјих послова, остаће нам неки црвени текст.
Постоје два начина да се ово заобиђе. Прво, ако знате које рачунаре желите да се добију резултати, можете једноставно да користите параметар ЦомпутерНаме у цмдлет-у Рециеве -Јоб.
Гет-Јоб -Ид 3 | Рецеиве-Јоб -Кееп -ЦомпутерНаме Випер
Алтернативно, можете добити резултате од одређеног дјечјег посла користећи његов ид посла.
Гет-Јоб -Ид 3 -ИнцлудеЦхилдЈоб
Гет-Јоб -Ид 5 | Рецеиве-Јоб -Кееп
ВМИ Јобс
ВМИ Послови су исти као и Даљински послови, захтијевају само параметар -АсЈоб да се дода цмдлету Гет-ВмиОбјецт.
Нажалост, то значи да су и они подложни истим грешкама које сам споменуо у одељку Ремоте Јобс.
Сцхедулед Јобс
Последње три врсте послова које смо посматрали нису биле упорне, што значи да су доступне само у вашој тренутној сесији. У основи, то значи да ако започнете посао, а затим отворите другу ПоверСхелл конзолу и покренете Гет-Јоб, нећете видјети никакав посао. Међутим, вратите се на конзолу из које сте избацили посао, моћи ћете да видите његов статус. Ово је у супротности са распоређеним пословима који су упорни. У основи, распоређени посао је блок скрипте који се покреће по распореду. У прошлости је исти ефекат могао да се постигне коришћењем Виндовс Таск Сцхедулера, што је заиста оно што се дешава испод хаубе. Да бисте креирали нови заказани посао, урадимо следеће:
Регистер-СцхедуледЈоб -Наме ГетЕвентЛогс -СцриптБлоцк Гет-ЕвентЛог -ЛогНаме Сецурити -Невест 100 -Триггер (Нев-ЈобТриггер -Даили -Ат 5пм) -СцхедуледЈобОптион (Нев-СцхедуледЈобОптион -РунЕлеватед)
У тој команди се доста тога дешава, па хајде да то прекинемо.
- Прво, дајемо нашем Планираном послу име ГетЕвентЛогс.
- Затим му кажемо да када се покрене, желимо да покрене садржај наведеног блока скрипти, који у основи добија најновије 100 уноса дневника безбедносног догађаја.
- Затим одредимо окидач. Будући да параметар окидача узима објекат окидача као улаз, користили смо заглављену команду за генерисање окидача који ће се искључити сваки дан у 17:00.
- Пошто се бавимо евиденцијом догађаја, морамо да радимо као администратор, што можемо да наведемо тако што ћемо креирати нови објекат СцхедуледЈобОптион и проследити га параметру СцхедуледЈобОптион.
Пошто је ово мало другачији тип посла, такође ћете морати да користите другу команду да бисте преузели листу свих планираних послова на машини.
Гет-СцхедуледЈоб
То је све.