Pagrindinis » kaip » Geek mokyklos mokymasis, kaip naudoti objektus „PowerShell“

    Geek mokyklos mokymasis, kaip naudoti objektus „PowerShell“

    Objektų supratimas yra viena iš pagrindinių „PowerShell“ sąvokų. Prisijunkite prie mūsų, kaip mes tyrinėjame objektus ir kaip jie „PowerShell“ geriau nei bet kuris kitas ten esantis apvalkalas.

    Būtinai perskaitykite ankstesnius serijos straipsnius:

    • Sužinokite, kaip automatizuoti „Windows“ su „PowerShell“
    • Mokymasis naudoti „Cmdlet“ „PowerShell“

    Visą savaitę laikykitės likusios serijos.

    Objektai

    Ar kada nors susimąstėte, kas išskiria „PowerShell“, išskyrus tradicinį „Linux“ apvalkalą, pvz., „Bash“, ar net senąją komandų eilutę? Atsakymas yra labai paprastas: tradicinis kriauklių išvesties tekstas, todėl sunku daryti tokius dalykus kaip formatavimas ir filtravimas. Žinoma, yra įrankių, padedančių jums atlikti darbą (prisiminti ir grep ateiti į galvą), bet dienos pabaigoje, jei norite atlikti bet kokį sunkų teksto analizę, turite žinoti reguliarias išraiškas, pvz. nugarą.

    „PowerShell“ naudojasi pagrindine .Net sistema ir naudoja kitą metodą, o ne tekstą. Objektai yra tik kažko vaizdavimas. Jie yra dalių rinkinys ir veiksmai, skirti juos naudoti. Pažvelkime į dviračio dalis ir kaip galime juos naudoti.

    .Net objektai yra daug vienodi, išskyrus du nedidelius skirtumus: „Dalys“ yra vadinamos savybės ir vadinamos „Instrukcijos“ metodus. Jei norėjome atstovauti „Windows“ paslaugą kaip objektą, galėtume nuspręsti, kad tai tikslinga apibūdinti naudojant tris savybes: paslaugos pavadinimą, būseną ir aprašymą. Mes taip pat turime bendrauti su paslauga, todėl galėtume suteikti objektui Start, Stop ir Pause metodą.

    Objekto savybes ir metodus galite matyti perduodami „Get-Member“ cmdlet. Objektai, kuriuos „PowerShell“ cmdlet išėjimai yra pagrindiniai „.Net“ sistemos tipai, tačiau galite sukurti savo objektus, jei jums reikia naudoti tokią kalbą kaip C # arba naudoti „PSObject“ tipą.

    Vamzdynas

    Yra daug „Linux“ korpusų su dujotiekiu, leidžiančiu jums siųsti tekstą, kurį viena komanda siunčia kaip įvestį į kitą dujotiekio komandą. „PowerShell“ tai perkelia į kitą lygį, leisdama jums paimti objektus, kuriuos išleidžia vienas cmdletas, ir perduoti juos kaip įvestį į kitą cmdlet vamzdyne. Apgaulė yra žinoti, kokio tipo objektas yra cmdlet, ir tai tikrai lengva naudoti naudojant „Get-Member“ cmdlet.

    „Get-Service“ Gauti narį

    Dėl priežasčių, nepatenkančių į šio straipsnio taikymo sritį, savybės ir metodai yra bendrai vadinami klasės nariais, o tai paaiškina, kodėl naudojate „Get-Member“ cmdlet, kad gautumėte visų objektų turimų metodų ir savybių sąrašą. Tačiau „Get-Member“ cmdlet taip pat grąžina kitą svarbią informaciją, pagrindinį objekto tipą. Pirmiau pateiktame ekrane matome, kad „Get-Service“ grąžina tokio tipo objektus:

    System.ServiceProcess.ServiceController

    Kadangi „PowerShell“ nagrinėja objektus, o ne tekstą, ne visi cmdletai gali būti susieti dujotiekiu [1]. Tai reiškia, kad turime rasti cmdlet, kuris nori priimti System.ServiceProcess.ServiceController objektą iš vamzdyno.

    Get-Command -ParameterType System.ServiceProcess.ServiceController

    Atkreipkite dėmesį, kad yra „cmdlet“, vadinama „Stop-Service“; pažvelkime į pagalbą.

    Get-Help -Name Stop-Service

    Atrodo, kad InputObject parametras įveda ServiceController objektų masyvą. Paprastai, jei matote parametrą, vadinamą „InputObject“, jis priims iš vamzdyno įvestą informaciją, tačiau tik įsitikinkite, kad pažvelgsime į visą pagalbos parametrą..

    Get-Help -Name Stop-Service - pilnas

    Mūsų įtarimai buvo teisingi. Taigi šiuo metu mes žinome:

    • „Get-Service“ grąžina „ServiceController“ objektus
    • „Stop-Service“ turi parametrą „InputObject“, kuris įveda vieną ar daugiau „ServiceControllers“.
    • Parametras „InputObject“ priima vamzdyno įvestį.

    Naudodami šią informaciją galėtume atlikti šiuos veiksmus:

    „Get-Service“ pavadinimas „Apple Mobile Device“ | „Stop-Service“

    Tai viskas šiam laikui. Kitą kartą mes žiūrime, kaip galime formuoti, filtruoti ir palyginti dujotiekio objektus.

    Namų darbai

    • Perskaitykite Objekto vamzdyną

    Jei turite kokių nors klausimų, galite susikurti mane @taybgibb arba palikti komentarą.