Nezabudnite si prečítať predchádzajúce články v sérii:
- Naučte sa ako automatizovať systém Windows pomocou nástroja PowerShell
- Naučiť sa používať Cmdlets v PowerShell
A zostávajte celú týždeň na zvyšok série.
objektov
Už ste niekedy premýšľali nad tým, čo nastavuje PowerShell na rozdiel od tradičnej linuxovej shellovej štruktúry, ako je Bash, alebo dokonca aj príkazového riadku staršej verzie? Odpoveď je naozaj jednoduchá: výstupný text tradičných škrupín, čo sťažuje robiť veci ako formátovanie a filtrovanie. Samozrejme, existujú nástroje, ktoré vám pomôžu vykonať túto prácu (sed a grep vám prídu na myseľ), ale na konci dňa, ak chcete robiť nejaký druh ťažkého rozboru textu, musíte poznať regulárne výrazy, ako je zadnej časti ruky.
PowerShell využíva základný.Net framework a berie iný prístup, používajúc namiesto textu objektov. Objekty sú len reprezentáciou niečoho. Sú to zbierka častí a akcií na ich použitie. Poďme sa pozrieť na časti bicykla a ako ich môžeme použiť.
Objekty v.Net sú oveľa rovnaké, s výnimkou dvoch malých rozdielov: nazývajú sa "časti" vlastnosti a "pokyny" metódy, Ak by sme chceli reprezentovať službu Windows ako objekt, mohli by sme sa rozhodnúť, že je vhodné ho opísať pomocou troch vlastností: Názov služby, stav a popis. Musíme tiež komunikovať so službou, takže môžeme objekt dať začiatok, stop a pauzu.
Potrubia
Existuje veľa liniek Linux s potrubím, čo vám umožňuje odoslať text, ktorý jeden príkaz vystupuje ako vstup do ďalšieho príkazu v potrubí. PowerShell prevezme túto úroveň na ďalšiu úroveň tým, že vám umožní vziať objekty, ktoré jeden cmdlet výstupy a odovzdať ich ako vstup do ďalšieho cmdlet v potrubí. Tento trik vedie, aký typ objektu sa vracia, čo je naozaj jednoduché pri použití cmdletu Get-Member.
Get-Service | Get-Member
System.ServiceProcess.ServiceController
Keďže PowerShell sa zaoberá objektmi a nie textom, nie všetky rutiny môžu byť spojené pomocou potrubia [1]. To znamená, že potrebujeme nájsť cmdlet, ktorý chce prijať objekt System.ServiceProcess.ServiceController z potrubia.
Get-Command -ParameterType System.ServiceProcess.ServiceController
Get-Help –Name Stop-Service
Get-Help -Name Stop-Service –Full
- Get-Service vráti objekty ServiceController
- Služba Stop-Service má parameter nazývaný InputObject, ktorý prijíma jeden alebo viac ServiceControllers ako vstup.
- Parameter InputObject akceptuje vstup potrubia.
Pomocou týchto informácií môžeme urobiť nasledovné:
Get-Service -Name ‘Apple Mobile Device’ | Stop-Service
Domáca úloha
Prečítajte si článok na potrubí objektu
Ak máte nejaké otázky, môžete ma napísať @taybgibb, alebo len zanechať komentár.