Muista lukea sarjan aiemmat artikkelit:
- Opi käyttämään automaattista Windowsia PowerShellillä
- Learning käyttämään Cmdlets PowerShellissä
Ja pysy kuulolla koko sarjan koko viikon ajan.
esineet
Oletko koskaan miettinyt, mikä asettaa PowerShellin perinteisen Linux-kuoren, kuten Bashin, vai edes vanhan komentokehotteen? Vastaus on todella yksinkertainen: perinteiset kuoret tuottavat tekstin, mikä vaikeuttaa esimerkiksi muotoilun ja suodatuksen. Tietenkin on työkaluja, joiden avulla voit saada työn tehtyä (sed ja grep tulevat mieleen), mutta lopussa, jos haluat tehdä minkäänlaista raskasta tekstin jäsentämistä, sinun täytyy tietää säännölliset lausekkeet, kuten kätesi takana.
PowerShell hyödyntää taustalla olevaa.Net-kehystä ja ottaa toisenlaisen lähestymistavan käyttämällä objekteja tekstin sijasta. Esineet ovat vain esitys jotain. Ne ovat kokoelma osia ja toimia niiden käyttämiseksi. Katsotaanpa polkupyörän osia ja miten voimme käyttää niitä.
Netissä olevat objektit ovat paljon samoja, lukuun ottamatta kahta pientä eroa: "Osat" kutsutaan ominaisuudet ja "Ohjeet" kutsutaan menetelmät. Jos halusimme edustaa Windows-palvelua objektina, voimme päättää, että se on tarkoituksenmukaista kuvata sitä käyttämällä kolmea ominaisuutta: Palvelun nimi, tila ja kuvaus. Meidän on myös vuorovaikutuksessa palvelun kanssa, jotta voimme antaa objektille Start-, Stop- ja Pause-menetelmän.
Pipeline
Runsaasti Linux-pohjaisia putkilinjoja, joiden avulla voit lähettää tekstin, jonka yksi komento tulostaa syötteeksi seuraavaan komentoon putkessa. PowerShell vie tämän seuraavalle tasolle antamalla sinun ottaa esineitä, jotka yksi cmdlet tulostaa ja siirtää ne syötteeksi seuraavaan cmdlettiin putkessa. Tämä temppu tietää, minkä tyyppistä esinettä cmdlet palauttaa, mikä on todella helppoa, kun käytät Get-jäsenen cmdletä.
Get-Service | Get-Member
System.ServiceProcess.ServiceController
Koska PowerShell käsittelee esineitä eikä tekstiä, kaikkia cmdlet-elementtejä ei voi yhdistää putkilinjaa käyttäen [1]. Tämä tarkoittaa, että meidän on löydettävä cmdlet, joka haluaa hyväksyä System.ServiceProcess.ServiceController -objektin putkesta.
Get-Command -ParameterType System.ServiceProcess.ServiceController
Get-Help –Name Stop-Service
Get-Help -Name Stop-Service –Full
- Get-Service palauttaa ServiceController-objekteja
- Stop-Service-toiminnolla on InputObject-parametri, joka hyväksyy yhden tai useamman Palvelukontrollerin tuloksi.
- InputObject-parametri hyväksyy putken syötteen.
Näiden tietojen avulla voimme tehdä seuraavaa:
Get-Service -Name ‘Apple Mobile Device’ | Stop-Service
Kotitehtävät
Tutustu Object Pipeline -ohjelmaan
Jos sinulla on kysyttävää, voit lähettää minulle @taybgibbin tai jättää kommentin.