11Sep

Геек Школа: Рад са колекцијама у ПоверСхелл-у

click fraud protection

Пошто је ПоверСхелл заснован на. Нет Фрамеворк и укључује разне друге технологије као што су ВМИ и ЦИМ, увек постоји више од једног начина да се постигне исто.Додајте нам се придружите за овај кратак пост на којем ћемо научити како одабрати најбољи начин за испуњавање задатака.

Обавезно прочитајте претходне чланке у серији:

  • Сазнајте како да аутоматизујете Виндовс ПоверСхелл
  • Учење да користи Цмдлетс у ПоверСхелл
  • Учење Како користити објекте у ПоверСхеллу
  • Формирање, филтрирање и упоређивање учења у ПоверСхелл
  • Научите да користите ремотинг уПоверСхелл
  • Користећи ПоверСхелл за добијање информација о рачунару

И остати подешен на остатак серије током целе недеље.

Користећи серије Цмдлетс

Раније у серији, када смо вас упознали са гасоводом, показали смо вам како можете да преузмете предмете који један цмдлет излази и да их прослеђујете као улаз у други цмдлет користећи нешто овако:

Гет-Процесс -Име нотепад |Стоп-Процесс

Ово би убило било који процес са именом "нотепад".Али вероватно се питате како ПоверСхелл може убити сваку инстанцу белешке са једним командом.Одговор лежи у помоћу цмдлет-а заустављања.

instagram viewer

помоћу Стоп-Процесс -Фулл

Ако погледате последњу линију кода у секцији синтаксе, можете видети да параметар ИнпутОбјецт прихвата објекат типа Процесс [], и кад год видите врсту коју прате два квадратна заграда, каода то значи да параметар прихвата ​​један или више претходног типа.У овом случају прихвата један или више процесних објеката.Технички, рекли смо да цмдлет ИнпутОбјецт прихвата низ процесу.Кад год имате цмдлет који подржава серијске операције на овај начин, користите га.Ово је избор број један.

Коришћење ВМИ

Иако ВМИ није најбољи део технологије за испоруку из Мицрософт ХК-а, она се појављује у секунди на листи како радити с збиркама објеката.Ми би лако могли да набавимо списак покретаних процеса из класе Вин32_Процесс као што је то случај:

Гет-ВмиОбјецт -Цласс Вин32_Процесс

Пошто ВМИ упит врати сопствену врсту објекта, мораћете да потражите метод који може зауставити процес, тако дадопушта цеви да добије члан.

Гет-ВмиОбјецт -Цласс Вин32_Процесс |Гет-Мембер

Изгледа да је најближа ствар зауставити је метода прекида, тако да мора бити она.Да бисте позвали методу на ВМИ објекту, једноставно га пребаците на Инвоке-ВмиМетход и наведите назив методе.

Гет-ВмиОбјецт -Цласс Вин32_Процесс -Филтер "име = 'нотепад.еке'" |Инвоке-ВмиМетход -Наме Терминате

Сјајно, то је урадио трик.Кад год добијете РетурнВалуе од 0 у ВМИ, само запамтите да је команда извршена успјешно.

Енумератион

Ако не урадите нешто друго у групи објеката, можете набројити цео објекат и деловати на сваком појединачном објекту.Прво морате наћи метод који ћете користити за заустављање једног процеса.

Гет-Процес |Гет-Мембер -МемберТипе метод

Савршено, изгледа да можемо да користимо методу Килл, а затим цеви у ФорЕацх-Објецт да их убијемо.

Гет-Процесс -Наме нотепад |ФорЕацх-Објецт -Процесс{ $ _. Килл()}

Овде смо преузели све објекте процеса који је Гет-Процесс вратио и просао их у цмдлету ФорЕацх-Објецт.Слично као цмдлет где смо имали објекат, представили смо сваки објекат у плиноводу са $ _ на који смо могли позвати метод Килл() .Са свим оним што је речено и учињено, набројавање колекције је пуно спорије од горе наведених метода и требало би да се користи само као последњи резултат.

Сажетак

Избор Један

Гет-Процесс -Наме нотепад |Стоп-Процесс

Избор два

Гет-ВмиОбјецт -Цласс Вин32_Процесс -Филтер "наме = 'нотепад.еке'" |Инвоке-ВмиМетход -Наме Прекидај

Избор три

Гет-Процесс -Наме нотепад |ФорЕацх-Објецт -Процесс{ $ _. Килл()}

То је све за овај пут људи, видимо се следеће недеље за више функција ПоверСхелл.