Powershell Essentials (del 2)


Innledning

I forrige artikkel i denne serien, jeg snakket om den grunnleggende syntaks som brukes av en Powershell cmdlet og jeg snakket om Microsoft ’ s begrunnelsen for å bygge cmdlets på denne måten . For de som kanskje lurer på hvorfor jeg begynte å snakke om noe så grunnleggende, jeg gjorde det fordi det passer innenfor mitt primære mål for denne artikkelserien.

Mitt håp for denne serien er at jeg kan hjelpe deg til å føle mer trygg om bruk av Powershell og kvitte seg med Powershell relatert angst. Grunnen til at jeg startet med å snakke om den grunnleggende cmdlet syntaks var å illustrere at selv de mest kompliserte Powershell script er egentlig ikke noe mer enn en lang rekke enkle oppgaver.

Selvfølgelig, vel vitende om den grunnleggende cmdlet syntaks er bare et utgangspunkt. Det er noen andre ting som du trenger å vite for å bli dyktigere med Powershell. Det å være tilfelle, er min plan å lage en liste over noen av de vanligste spørsmålene om Powershell, og deretter svare på disse spørsmålene. Noen av spørsmålene som jeg ønsker å ta opp i denne artikkelserien er:?

  • Hvordan kan jeg finne ut hvilke cmdlet å bruke

    Hvordan angir jeg parametere for en cmdlet

    Hvordan kan jeg få hjelp med å bruke en cmdlet?

    Hvordan kan jeg hente informasjon om et objekt?

    Hvorfor er det noen blokker av kode ikke ut til å være skrevet i Powershell?

    Hvordan Powershell script arbeid?

    Kan jeg bruke variabler?

    Hvordan Power funksjoner arbeid?

    Etter den tid at jeg har ferdig å svare på disse åtte enkle spørsmål, bør du ha en solid kjennskap til Powershell. I ’ m ikke si at du vil bli en umiddelbar Powershell ekspert, men ved å forstå svarene på spørsmålene ovenfor, bør du være i stand til å oppnå omtrent alt nødvendig i Powershell

    Hvordan kan jeg finne ut hvilke Cmdlet. Bruke

    Jeg ønsker å komme i gang ved å svare på det første spørsmålet på listen – hvordan kan jeg finne ut hvilke cmdlet å bruke? Som forklart tidligere, cmdlets er de grunnleggende byggesteinene i Powershell. Hver cmdlet utfører en enkel oppgave, og flere cmdlets kan slås sammen for å utføre mer komplekse oppgaver. Derfor vite hvilke cmdlet eller cmdlets å bruke i en gitt situasjon er det første skrittet i å fullføre oppgaven

    Til tross for Powershell ’ s. Rykte for å være komplisert, noen cmdlets er faktisk veldig intuitiv. Det å være tilfelle, er det noen ganger mulig å gjette riktig cmdlet. Don ’ t tro meg? La meg bevise det.

    Som jeg forklarte i forrige artikkel, Powershell cmdlets består av verb-substantiv kombinasjoner. Verbet indikerer handlingen som skal utføres, mens substantivet viser objektet til å utføre handlingen på. Selv om Powershell inneholder mange tusen cmdlets, listen over bruk substantiv og verb isn ’ t så lenge hva man kunne forvente. Dette betyr at noen ganger er det mulig å spørre om hva du trenger i vanlig engelsk.

    Anta for eksempel at du ønsket å bruke Powershell for å hente dagens dato. Du kan gjøre det ved hjelp av Get-Date cmdlet. I dette tilfellet Get er verbet, og dato er substantivet. En vanlig engelsk cmdlet ga oss akkurat det vi trengte

    Riktignok Powershell ikke ville ’. T har et rykte for å bli komplisert hvis alt var så enkelt. Heldigvis er det noen andre triks som du kan bruke til å finne ut hva cmdlet å bruke

    Ett triks er å bruke en rimelig gjetning å finne ut hva du don ’. T vet. Anta for eksempel at du jobbet på en Windows 8-skrivebordet, og du ønsket å se informasjon relatert til harddisken som er installert i systemet. Din første tanke kan være å bruke Get-Disk cmdlet. Get-Disk er en gyldig Powershell cmdlet, men det er vanligvis brukes med Windows Storage Spaces. Det å være tilfelle, ved hjelp av kommandoen lokalt på en Windows 8-skrivebordet gir en feilmelding. Så hva gjør du?

    Tenk om oppgaven. Du prøver å hente disk relatert informasjon, slik at Get delen av kommandoen er sannsynligvis riktig. En ting som du kan gjøre er å bruke Get-Command kommandoen til å bestemme alle de cmdlets som bruker ordet Get. Kommandoen for å gjøre det er Get-Command Get-* Som du kan se i figur A imidlertid listen over cmdlets som bruker Get er ganske lang

    Figur A:. Du kan bruke Get-Command å hente en liste over cmdlets.

    Kanskje det ville være mer nyttig å få en oversikt over diskrelaterte cmdlets. Siden vi er fortsatt prøver å hente disk relatert informasjon, kan vi inkludere Get verb i vårt søk. Så, hvis du ønsket å se alle de cmdlets som bruker Get verb og noen variant av ordet disk, kan du bruke følgende kommando:

    Get-Command Get-* disk *

    Som du kan se i figur B, får du en mye kortere liste med resultater denne gangen. Ut av listen over resultater, den eneste cmdlet som virkelig virker sannsynlig er Get-PhysicalDisk. Hvis du ser på Figur C, kan du se feilmeldingen produsert av Get-Disk cmdlet, og resultatene returneres ved hjelp av Get-PhysicalDisk cmdlet

    Figur B:. Disse er de eneste cmdlets som brukes for å hente disk . informasjon

    Figur C: Get-Disk cmdlet produserer en feil under Get-PhysicalDisk gir den informasjonen vi ønsket

    I min erfaring, er det vanligvis mulig å bruke Get-Command cmdlet. å finne cmdlet som kreves for en gitt situasjon. Hver gang en stund derimot, er det nødvendig cmdlet noe virkelig obskure at jeg aldri ville ha gjettet. Heldigvis finnes det måter å få hjelp i de situasjoner

    La ’ s. Late som for eksempel at jeg ønsket å bruke Powershell til å slette en lagring bassenget, men don ’ t vet hva cmdlet å bruke. Min første gjetning vil trolig være å bruke Delete-StoragePool cmdlet, men det gjetning vil være galt. Slette-StoragePool cmdlet ikke eksisterer.

    Neste, jeg ville trolig bruke triks som jeg viste deg et øyeblikk siden og skriv inn Get-Command slette- * Men gir dette ingen resultater. Åpenbart Slett er ikke det rette ordet.

    Det er noen forskjellige ting som kan gjøres i denne situasjonen. Ett alternativ er å prøve å bruke Get-Command cmdlet mot ordet StoragePool. Kommandoen for å gjøre det er Get-Command * -StoragePool. I dette tilfellet viser Powershell oss fire relaterte cmdlets og det er lett å fortelle at cmdlet som vi er ute etter er Fjern-StoragePool. Du kan se resultatene i figur D.

    Figur D:. Kommandoen produsert fire forskjellige resultater

    OK, så det trikset ga oss den informasjonen vi trengte, men hva hvis det ikke hadde ’ t? Hva annet kan vi gjøre? Vel, er ett alternativ å bruke Get-Help kommandoen. Siden vi vet at vi prøver å gjøre noe lagring relatert, kunne vi skriver Get-Help bagasje. Gjør du det vil gi oss en liste over lager spesifikke kommandoer, som vist i Figur E.

    Figur E:. Get-Help Storage gir en oversikt over lagringsrelaterte cmdlets

    Forresten, Get-Help cmdlet kan også brukes til å få hjelp med cmdlet syntaks. For eksempel, hvis du skriver Get-Help Fjern-StoragePool, vil du se cmdlet ’ s fulle syntaks, pluss innholdet i alle tilgjengelige hjelpefiler, som vist i Figur F.

    Figur F: Du kan bruke Get-Help å hente cmdlet syntaks.

    Hvis de teknikker som jeg har vist ikke fungerer, så kan du alltids bruke Internett. Du kan for eksempel utføre et søk på setningen “ bruke Powershell til å fjerne et lagrings pool ”.

    Konklusjon

    Som du kan se, er det relativt lett å finne ut hva cmdlet til bruker i en gitt situasjon. I neste artikkel i denne serien, jeg vil diskusjonen.
    Fortsette ved å svare på flere spørsmål fra listen