Geek School: Učenje kako koristiti objekte u PowerShellu

Sadržaj:

Geek School: Učenje kako koristiti objekte u PowerShellu
Geek School: Učenje kako koristiti objekte u PowerShellu

Video: Geek School: Učenje kako koristiti objekte u PowerShellu

Video: Geek School: Učenje kako koristiti objekte u PowerShellu
Video: Horizon: Forbidden West (The Movie) - YouTube 2024, Svibanj
Anonim
Razumijevanje objekata jedan je od temeljnih pojmova za "dobivanje" PowerShell. Pridružite nam se dok istražujemo objekte i kako oni čine PowerShell bolje od bilo koje druge ljuske vani danas.
Razumijevanje objekata jedan je od temeljnih pojmova za "dobivanje" PowerShell. Pridružite nam se dok istražujemo objekte i kako oni čine PowerShell bolje od bilo koje druge ljuske vani danas.

Obavezno pročitajte prethodne članke serije:

  • Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
  • Učenje pomoću Cmdletsa u PowerShellu

I ostanite u tijeku cijele serije cijeli tjedan.

objekti

Jeste li ikad pitali što postavlja PowerShell osim tradicionalne Linux ljuske poput Bash, pa čak i naslijeđene naredbeni redak? Odgovor je doista jednostavan: tradicionalni izlazni tekstovi školjki, što otežava rad stvari poput oblikovanja i filtriranja. Naravno, postoje alati koji će vam pomoći da obavite posao (sed i grep na umu), ali na kraju dana, ako želite napraviti bilo koju vrstu teškog pisanja teksta, trebate znati redovite izraze poput leđa ruke.

PowerShell iskorištava temeljni.Net okvir i koristi drugačiji pristup, koristeći objekte umjesto teksta. Objekti su samo predstavljanje nečega. Oni su zbirka dijelova i radnji za njihovo korištenje. Pogledajmo dijelove bicikla i kako ih možemo upotrijebiti.

Image
Image

Objekti u Netu su mnogo isti osim za dvije male razlike: nazivaju se "Dijelovi" nekretnine i nazivaju se "upute" metode, Ako želimo predstaviti servis sustava Windows kao objekt, možemo odlučiti da je prikladno opisati pomoću tri svojstva: Naziv usluge, stanje i opis. Također trebamo stupiti u interakciju s uslugom, tako da objektu možemo dati metodi Start, Stop i Pauza.

Možete vidjeti svojstva objekta i metode tako što ćete je prenijeti u cmdlet Get-Member. Predmeti koji PowerShellov cmdletovi izlaze uglavnom su ispod vrste iz.Net okvira, ali možete stvoriti vlastite objekte ako trebate koristiti jezik kao što je C # ili koristite PSObject tip.
Možete vidjeti svojstva objekta i metode tako što ćete je prenijeti u cmdlet Get-Member. Predmeti koji PowerShellov cmdletovi izlaze uglavnom su ispod vrste iz.Net okvira, ali možete stvoriti vlastite objekte ako trebate koristiti jezik kao što je C # ili koristite PSObject tip.

Cjevovod

Dostupne su mnoge Linux ljuske s cjevovodom, omogućujući vam da pošaljete tekst koji jedna naredba izlazi kao ulaz u sljedeću naredbu u cjevovodima. PowerShell to preuzima na sljedeću razinu dopuštajući vam da preuzmete objekte koje jedan cmdlet izlaze i proslijedi ih kao ulaz u sljedeći cmdlet na cjevovodima. Trik je znao kakvu vrstu objekta cmdlet vraća, što je stvarno lako kada koristite Get-Member cmdlet.

Get-Service | Get-Member

Iz razloga koji su izvan okvira ovog članka, svojstva i metode zajednički se nazivaju članovi klase, što objašnjava zašto koristite cmdlet Get-Member da biste dobili popis svih metoda i svojstava koje objekt ima. Međutim, cmdlet Get-Member također vraća još jedan važan podatak, osnovnu vrstu objekta. Na gornjoj snimci zaslona možemo vidjeti da Get-Service vraća objekte tipa:
Iz razloga koji su izvan okvira ovog članka, svojstva i metode zajednički se nazivaju članovi klase, što objašnjava zašto koristite cmdlet Get-Member da biste dobili popis svih metoda i svojstava koje objekt ima. Međutim, cmdlet Get-Member također vraća još jedan važan podatak, osnovnu vrstu objekta. Na gornjoj snimci zaslona možemo vidjeti da Get-Service vraća objekte tipa:

System.ServiceProcess.ServiceController

Budući da PowerShell bavi predmetima, a ne tekstom, svi cmdleti ne mogu biti povezani zajedno pomoću cjevovoda [1]. To znači da moramo pronaći cmdlet koji želi prihvatiti objekt System.ServiceProcess.ServiceController iz cjevovoda.

Get-Command -ParameterType System.ServiceProcess.ServiceController

Primjetite da postoji cmdlet pod nazivom Stop-Service; Pogledajmo pomoć za to.
Primjetite da postoji cmdlet pod nazivom Stop-Service; Pogledajmo pomoć za to.

Get-Help –Name Stop-Service

Izgleda da InputObject parametar zauzima niz objekata ServiceController kao ulaz. Obično, ako vidite parametar zvan InputObject, prihvaća unos iz Cijevi, ali samo da bismo pogledali punu pomoć tog parametra.
Izgleda da InputObject parametar zauzima niz objekata ServiceController kao ulaz. Obično, ako vidite parametar zvan InputObject, prihvaća unos iz Cijevi, ali samo da bismo pogledali punu pomoć tog parametra.

Get-Help -Name Stop-Service –Full

Naše su sumnje bile ispravne. Dakle, u ovom trenutku znamo sljedeće:
Naše su sumnje bile ispravne. Dakle, u ovom trenutku znamo sljedeće:
  • Get-Service vraća ServiceController objekte
  • Stop-Service ima parametar pod nazivom InputObject koji prihvaća jedan ili više ServiceControllera kao ulaz.
  • Parametar InputObject prihvaća unos plinovoda.

Pomoću tih informacija možemo učiniti sljedeće:

Get-Service -Name ‘Apple Mobile Device’ | Stop-Service

To je sve za ovo vrijeme ljudi. Sljedeći put ćemo pogledati kako možemo oblikovati, filtrirati i usporediti objekte u Cjevovodu.
To je sve za ovo vrijeme ljudi. Sljedeći put ćemo pogledati kako možemo oblikovati, filtrirati i usporediti objekte u Cjevovodu.

Domaća zadaća

Pročitajte o objektnom pipelu

Ako imate bilo kakvih pitanja, možete me tweetirati @taybgibb ili ostavite komentar.

Preporučeni: