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.
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.
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
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
Get-Help –Name Stop-Service
Get-Help -Name Stop-Service –Full
- 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
Domaća zadaća
Pročitajte o objektnom pipelu
Ako imate bilo kakvih pitanja, možete me tweetirati @taybgibb ili ostavite komentar.