Geek School: Lær hvordan du bruker objekter i PowerShell

Innholdsfortegnelse:

Geek School: Lær hvordan du bruker objekter i PowerShell
Geek School: Lær hvordan du bruker objekter i PowerShell

Video: Geek School: Lær hvordan du bruker objekter i PowerShell

Video: Geek School: Lær hvordan du bruker objekter i PowerShell
Video: How To Chia GPU Plotting and Farming Guide for WINDOWS UPDATED - Gigahorse Start to Finish - 2023 - YouTube 2024, April
Anonim
Forståelse av objekter er et av de grunnleggende konseptene for å "få" PowerShell. Bli med oss når vi undersøker objekter og hvordan de gjør PowerShell bedre enn noe annet skall der ute i dag.
Forståelse av objekter er et av de grunnleggende konseptene for å "få" PowerShell. Bli med oss når vi undersøker objekter og hvordan de gjør PowerShell bedre enn noe annet skall der ute i dag.

Husk å lese de forrige artiklene i serien:

  • Lær hvordan du automatiserer Windows med PowerShell
  • Lære å bruke Cmdlets i PowerShell

Og hold deg innstilt for resten av serien hele uken.

objekter

Har du noen gang lurt på hva som setter PowerShell bortsett fra et tradisjonelt Linux-skall som Bash, eller til og med arven kommandoprompt? Svaret er veldig enkelt: Tradisjonelle skaller skriver ut tekst, noe som gjør det vanskelig å gjøre ting som formatering og filtrering. Selvfølgelig er det verktøy som hjelper deg med å få jobben gjort, men på slutten av dagen, hvis du vil gjøre noen form for tunge tekstanalyser, må du kjenne vanlige uttrykk som baksiden av hånden din.

PowerShell benytter seg av den underliggende.Net-rammen og tar en annen tilnærming, ved hjelp av objekter i stedet for tekst. Objekter er bare en representasjon av noe. De er en samling av deler og handlinger for å bruke dem. La oss ta en titt på deler av en sykkel og hvordan vi kan bruke dem.

Image
Image

Objekter i. Nett er stort sett unntatt for to små forskjeller: "Delene" kalles eiendommer og "Instruksjoner" kalles fremgangsmåter. Hvis vi ønsket å representere en Windows-tjeneste som et objekt, kan vi bestemme at det er hensiktsmessig å beskrive det ved hjelp av tre egenskaper: Tjenestens navn, Stat og Beskrivelse. Vi må også samhandle med tjenesten, slik at vi kan gi objektet en start, en stopp og en pause-metode.

Du kan se et objekts egenskaper og metoder ved å sende det til Get-Member-cmdlet. Objektene som utgir PowerShell cmdlet-utganger, er i stor grad underliggende typer fra.Net-rammen, men du kan lage dine egne objekter hvis du trenger å bruke et språk som C # eller bruke PSObject-typen.
Du kan se et objekts egenskaper og metoder ved å sende det til Get-Member-cmdlet. Objektene som utgir PowerShell cmdlet-utganger, er i stor grad underliggende typer fra.Net-rammen, men du kan lage dine egne objekter hvis du trenger å bruke et språk som C # eller bruke PSObject-typen.

Rørledningen

Det er mange Linux-skjell med en rørledning, slik at du kan sende teksten som en kommando utdataer som input til neste kommando i rørledningen. PowerShell tar dette til neste nivå ved å tillate deg å ta objektene som en cmdlet utgir og sende dem som input til neste cmdlet i rørledningen. Trikset er å vite hvilken type objekt en cmdlet returnerer, noe som er veldig enkelt når du bruker Get-Member-cmdlet.

Get-Service | Get-Member

For grunner utenfor denne artiklens omfang er egenskaper og metoder felleskalt klassemedlemmer, noe som forklarer hvorfor du bruker Get-Member-cmdlet for å få en liste over alle metoder og egenskaper et objekt har. Imidlertid returnerer Get-Member-cmdlet også et annet viktig stykke informasjon, den underliggende objekttypen. I ovenstående skjermbilde kan vi se at Get-Service returnerer objekter av typen:
For grunner utenfor denne artiklens omfang er egenskaper og metoder felleskalt klassemedlemmer, noe som forklarer hvorfor du bruker Get-Member-cmdlet for å få en liste over alle metoder og egenskaper et objekt har. Imidlertid returnerer Get-Member-cmdlet også et annet viktig stykke informasjon, den underliggende objekttypen. I ovenstående skjermbilde kan vi se at Get-Service returnerer objekter av typen:

System.ServiceProcess.ServiceController

Siden PowerShell omhandler objekter og ikke tekst, kan ikke alle cmdlets kobles sammen ved hjelp av rørledningen [1]. Det betyr at vi må finne en cmdlet som ønsker å akseptere et System.ServiceProcess.ServiceController-objekt fra rørledningen.

Get-Command -ParameterType System.ServiceProcess.ServiceController

Legg merke til at det er en cmdlet kalt Stop-Service; la oss se på hjelpen til det.
Legg merke til at det er en cmdlet kalt Stop-Service; la oss se på hjelpen til det.

Get-Help –Name Stop-Service

Det ser ut til at parameteren InputObject tar en rekke ServiceController-objekter som input. Vanligvis, hvis du ser en parameter som heter InputObject, vil den akseptere innspilling fra pipeline, men bare for å være sikker, la oss se på full hjelp for denne parameteren.
Det ser ut til at parameteren InputObject tar en rekke ServiceController-objekter som input. Vanligvis, hvis du ser en parameter som heter InputObject, vil den akseptere innspilling fra pipeline, men bare for å være sikker, la oss se på full hjelp for denne parameteren.

Get-Help -Name Stop-Service –Full

Våre mistanker var korrekte. Så på dette punktet vet vi følgende:
Våre mistanker var korrekte. Så på dette punktet vet vi følgende:
  • Get-Service returnerer ServiceController-objekter
  • Stop-Service har en parameter som heter InputObject som aksepterer en eller flere ServiceControllers som input.
  • InputObject-parameteren aksepterer pipelineinngang.

Ved hjelp av denne informasjonen kan vi gjøre følgende:

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

Det er alt for denne gangen folkens. Neste gang ser vi på hvordan vi kan formatere, filtrere og sammenligne objekter i rørledningen.
Det er alt for denne gangen folkens. Neste gang ser vi på hvordan vi kan formatere, filtrere og sammenligne objekter i rørledningen.

Hjemmelekser

Les opp på objektrørledningen

Hvis du har noen spørsmål, kan du tweet meg @ taybgibb, eller bare gi en kommentar.

Anbefalt: