Суочио сам се са потребом да покренем скрипте ПоверСхелл-а када се догодио одређени догађај (Виндовс Евент) током организовања ДХЦП-овог преласка. Међутим, мислим да може бити много апликација. Откуцао је на мрежу и пронашао чланак под називом Триггер а Поверхелл Скрипта од а Виндовс Евент. (хттп://блогс.тецхнет.цом/б/винцат/арцхиве/2011/08/25/триггер-а-поверсхелл-сцрипт-фром-а-виндовс-евент.аспк). Скрећем вам пажњу превод овог чланка на руски језик.
Овај пример показује како да урадите две ствари одједном. Покрените ПоверСхелл скрипту када се догоди одређени Виндовс догађај и ТАКОЂЕ прослиједите потребне параметре догађаја у скрипту за покретање. На пример, користићемо тест догађај који је генерисао програм Евентцреате из командне линије.
Позадина: Ова скрипта потребна је за брисање одређене јавне мапе када се догодио одређени догађај (Виндовс Евент). Догађај је снимљен након што је завршен процес додавања "воденог жига" одређеној датотеци. Догађај кориштен у овом примеру понавља стандардни формат догађаја.
Следећи кораци ће бити приказани:
- Ручно креирање и пребацивање догађаја
- Коришћење конзоле прегледача догађаја
- Промјена планираног задатка да би се параметри догађаја прослиједили на скрипту
- Покретање и покретање скрипте ПоверСхелл
- Проверите подешавања
1. корак: Креирајте запис догађаја користећи Евентцреате
Ц: \> евентцреате / Т ИНФОРМАЦИЈЕ / СО СомеАпплицатион / ИД 1000 / Л ПРИЈАВА / Д "2011-08-29Т21: 24: 03ЗЦ: \ темп \ Соме Тест Филе.тктСуццесс"
2. корак: Креирајте нови задатак у конзоли дневника прегледа догађаја помоћу контекстног менија „Приложи задатак овом догађају“Приложи Задатак до Ово Евент... ”)
Покрените конзолу Евент Виевер (евентввр.мсц), пронађите у дневнику догађаја Виндовс се евидентира -> Примена Догађај креиран у претходном кораку. Кликните десним тастером миша на њу и изаберите „Приложите задатак овом догађају ... "
Напомена. Могућности креирања покретача догађаја помоћу овог менија претходно су разматране у чланку Виндовс Евент Триггерс..Креирајте задатак „Покрени програм“ са следећим параметрима:
Програм / скрипта (Програм / скрипта): ПоверСхелл.еке
Аргументи (Додавање аргумената): .\ ТриггерСцрипт.пс1 -евентРецордИД $ (евентРецордИД) -евентЦханнел $ (евентЦханнел)
Почните у (Старт ин) (можда ћете требати да направите ову мапу или покажете на постојећу мапу): ц: \ темп
Корак 3: Промените задатак за прослеђивање детаља о догађају (окидач догађај) и просљеђивање параметара у скрипту Поверхелл
Унутар Таск Сцхедулера пренесите ново креирани задатак (у облику КСМЛ датотеке). Кликните десним тастером миша на задатак "Апплицатион_СомеАпплицатион_1000" у фасцикли "Задаци прегледача догађаја" и изаберите "Извези ... ".
Користећи Нотепад или неки други уређивач текста (пожељно је да уређивач подржава уређивање Уницоде-а, као што је Нотепад), додајте параметре догађаја који се морају пренети. Параметри догађаја представљени у наставку најчешће се користе за идентификацију догађаја. Имајте на уму да је читав чвор а његова деца морају бити додата у подружницу ЕвентТриггер-а.
Догађај / систем / канал
Евент / Систем / ЕвентРецордИД
Догађај / систем / ниво
Овако:
Из командне линије покрените следеће команде да бисте избрисали задатак планера и поново га креирали помоћу управо измењене датотеке (не знам како да мењам задатке помоћу модификоване КСМЛ датотеке).
Ц: \> сцхтаскс / делете / ТН "Задаци прегледача догађаја \ Апплицатион_СомеАпплицатион_1000"
Ц: \> сцхтаскс / цреате / ТН "Задаци прегледника догађаја \ Апплицатион_СомеАпплицатион_1000" / КСМЛ апликација_
СомеАпплицатион_1000.кмл
Корак 4: Стварање Поверхелл скрипта ТриггерСцрипт.пс1, који се зове задатак планер
Напомена. Приказана скрипта прима основне информације о задатку који ју је покренуо. Скрипта затим испитује Виндовс Евент Лог ради других детаља о догађају. У нашем примеру, параметри се преносе путем КСМЛ-а, али било који други текст се може пренијети, под условом да скрипта може исправно да анализира и прихвати. Узгред, параметар „евентРецордИД“, који се прослеђује скрипту, не сме се мешати са евентИД догађаја. Вредност евентРецордИД је секвенцијални редни број додељен свим догађајима када су регистровани на свом каналу (Лог'е). Поред тога, евентРецордИДс је јединствен за одређени канал (Дневник).
# Назив скрипте: ТриггерСцрипт.пс1
# Пример употребе (користите валидан ИД пронађен преко КСМЛ приказа догађаја на Виеверу догађаја): поверсхелл. \ ТриггерСцрипт.пс1 -евентРецордИД 1 -евентЦханнел апликација
#
# Креирајте лажни догађај или тестирање са следећом наредбом (из повишене командне линије):
# евентцреате / Т ИНФОРМАЦИЈЕ / СО СомеАпплицатион / ИД 1000 / Л ПРИЈАВА / Д "2011-08-29Т21: 24: 03ЗЦ: \ темп \ Соме Тест Филе.тктСуццесс"
# Прикупља све именоване параметре (сви остали завршавају у $ Аргс)
парам ($ евентРецордИД, $ евентЦханнел)
$ евент = гет-виневент -ЛогНаме $ евентЦханнел -ФилтерКСПатх "* [Систем [(ЕвентРецордИД = $ евентРецордИД)]]"
[кмл] $ евентПарамс = $ евент.Мессаге
иф ($ евентПарамс.Парамс.ТимеСтамп)
[датетиме] $ евентТиместамп = $ евентПарамс.Парамс.ТимеСтамп
$ евентФиле = $ евентПарамс.Парамс.ИнпутФиле
$ попупОбјецт = нев-објецт -цомобјецт всцрипт.схелл
$ попупОбјецт.попуп ("РецордИД:" + $ евентРецордИД + ", канал:" + $ евентЦханнел + ", временски журнал догађаја:" + $ евентТиместамп + ", датотека:" + $ евентФиле)
Корак 5: Проверите подешавања генерирањем новог догађаја сличног ономе који је створен у 1. кораку
Ц: \> евентцреате / Т ИНФОРМАЦИЈЕ / СО СомеАпплицатион / ИД 1000 / Л ПРИЈАВА / Д "2011-08-29Т21: 24: 03ЗЦ: \ темп \ Соме Тест Филе.тктСуццесс"
Требали бисте видети искачућу поруку као што је ова:
Нисте радили? Проверите следеће:
- Проверите да ли постоји догађај у приказивачу догађаја. Можда ћете требати да освежите приказ преко менија Освежи или дугмета Ф5.
- Ручно покрените скрипту са стварним параметрима и погледајте могуће грешке (обратите пажњу на коментаре у скрипти, на примерима апликација). Док је скрипта „непотписана“, можда ћете морати да конфигуришете ПоверСхелл да ово покрене као непотписано (погледајте ПС> гет-хелп абоут_Екецутион_Полициес).
- Уверите се да је задатак у распореду задатака у мапи „Задаци прегледача догађаја“ и погледајте историју задатка („Историја“).