Geek-koulu: oppii käyttämään esineitä PowerShellissä

Sisällysluettelo:

Geek-koulu: oppii käyttämään esineitä PowerShellissä
Geek-koulu: oppii käyttämään esineitä PowerShellissä

Video: Geek-koulu: oppii käyttämään esineitä PowerShellissä

Video: Geek-koulu: oppii käyttämään esineitä PowerShellissä
Video: SKR Pro v1.x - Klipper install - YouTube 2024, Huhtikuu
Anonim
Objektien ymmärtäminen on yksi keskeisistä käsitteistä "saada" PowerShell. Liity meihin, kun tutkimme esineitä ja miten he tekevät PowerShellistä paremman kuin missään muualla tänään.
Objektien ymmärtäminen on yksi keskeisistä käsitteistä "saada" PowerShell. Liity meihin, kun tutkimme esineitä ja miten he tekevät PowerShellistä paremman kuin missään muualla tänään.

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ä.

Image
Image

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.

Näet objektin ominaisuudet ja menetelmät siirtämällä sen Get-Member-cmdlet-tiedostoon. Objektit, jotka PowerShell-cmdlet-lähdöt ovat, ovat suurelta osin taustatyyppejä.Net-kehyksestä, mutta voit luoda omia objekteja, jos haluat käyttää C # -kielistä tai käyttää PSObject-tyyppiä.
Näet objektin ominaisuudet ja menetelmät siirtämällä sen Get-Member-cmdlet-tiedostoon. Objektit, jotka PowerShell-cmdlet-lähdöt ovat, ovat suurelta osin taustatyyppejä.Net-kehyksestä, mutta voit luoda omia objekteja, jos haluat käyttää C # -kielistä tai käyttää PSObject-tyyppiä.

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

Tämän artikkelin soveltamisalan ulkopuolisista syistä ominaisuuksia ja menetelmiä kutsutaan yhdessä luokan jäseniksi, mikä kertoo, miksi käytät Get-Member-cmdlet -ohjelmaa saadaksesi luettelon kaikista objektin tavoista ja ominaisuuksista. Get-Member-cmdlet palauttaa kuitenkin toisen tärkeän tiedon, joka perustuu kohdeobjektin tyyppiin. Edellä olevassa kuvakaappauksessa voimme nähdä, että Get-Service palauttaa tyypin kohteet:
Tämän artikkelin soveltamisalan ulkopuolisista syistä ominaisuuksia ja menetelmiä kutsutaan yhdessä luokan jäseniksi, mikä kertoo, miksi käytät Get-Member-cmdlet -ohjelmaa saadaksesi luettelon kaikista objektin tavoista ja ominaisuuksista. Get-Member-cmdlet palauttaa kuitenkin toisen tärkeän tiedon, joka perustuu kohdeobjektin tyyppiin. Edellä olevassa kuvakaappauksessa voimme nähdä, että Get-Service palauttaa tyypin kohteet:

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

Huomaa, että cm-koko on Stop-Service; Katsotaanpa sitä apua.
Huomaa, että cm-koko on Stop-Service; Katsotaanpa sitä apua.

Get-Help –Name Stop-Service

Näyttää siltä, että InputObject-parametri ottaa joukon ServiceController -objekteja tulona. Yleensä jos näet InputObject-nimisen parametrin, se hyväksyy putkilinjan syötteen, mutta varmista vain, että tarkastelemme kyseisen parametrin täydellistä apua.
Näyttää siltä, että InputObject-parametri ottaa joukon ServiceController -objekteja tulona. Yleensä jos näet InputObject-nimisen parametrin, se hyväksyy putkilinjan syötteen, mutta varmista vain, että tarkastelemme kyseisen parametrin täydellistä apua.

Get-Help -Name Stop-Service –Full

Epäilyt olivat oikeita. Joten tässä vaiheessa tiedämme seuraavaa:
Epäilyt olivat oikeita. Joten tässä vaiheessa tiedämme seuraavaa:
  • 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

Kaikki tämä tänä aikana ihmiset. Seuraavaksi tarkastelemme, kuinka voimme muotoilla, suodattaa ja verrata Pipeline-objekteja.
Kaikki tämä tänä aikana ihmiset. Seuraavaksi tarkastelemme, kuinka voimme muotoilla, suodattaa ja verrata Pipeline-objekteja.

Kotitehtävät

Tutustu Object Pipeline -ohjelmaan

Jos sinulla on kysyttävää, voit lähettää minulle @taybgibbin tai jättää kommentin.

Suositeltava: