Mens denne serien ikke er strukturert rundt en eksamen, er læring PowerShell en av de viktigste tingene du kan gjøre som nettverksadministrator, så hvis det er en ting du vil lære å hjelpe din IT-karriere, er dette det. I tillegg er det mye moro.
Introduksjon
PowerShell er det kraftigste automatiseringsverktøyet som Microsoft har å tilby, og det er både et skall og et skriptspråk.
Vær oppmerksom på at denne serien er basert på PowerShell 3, som leveres med Windows 8 og Server 2012. Hvis du kjører Windows 7, laster du ned PowerShell 3-oppdateringen før du fortsetter.
Møt konsollen og ISE
Det er to måter å interagere med PowerShell ut av boksen, konsollen og det integrerte skriptmiljøet - også kjent som ISE. ISE har vesentlig forbedret seg fra den heslige versjonen som ble levert med PowerShell 2, og kan åpnes ved å trykke på Win + R-tastaturkombinasjonen for å hente en kjøreboks, og deretter skrive powershell_ise og trykke enter.
Bruke hjelpesystemet
I tidligere versjoner av PowerShell ble hjelpefiler inkludert når du installerte Windows. Dette var en god løsning for det meste, men ga oss et betydelig problem. Når PowerShells helpteam måtte slutte å jobbe med hjelpefilene, var PowerShell-utviklerne fremdeles opptatt av koding og endringer. Dette betydde at når PowerShell ble sendt, var hjelpefilene feil fordi de ikke inneholdt de nyere endringene som ble gjort til koden. For å løse dette problemet, kommer PowerShell 3 uten hjelpefiler ut av boksen og inneholder et oppdaterbart hjelpesystem. Dette betyr at før du gjør noe du vil laste ned de nyeste hjelpefilene. Du kan gjøre det ved å åpne en PowerShell Console og kjøre:
Update-Help
Get-Help –Name Update-Help
For å svare på det andre spørsmålet, er det en viss syntaks som hjelper filene, og her er det:
- Firkantede parenteser rundt et parameternavn og dets type betyr at det er en valgfri parameter, og kommandoen vil fungere fint uten det.
- Firkantede parenteser rundt parameternavn betyr at parametrene er posisjonsparameter.
- Tingen til høyre for en parameter i de vinklede parentesene forteller deg datatypen som parameteren forventer.
Mens du bør lære å lese hjelpefilsyntaxen, hvis du noen gang er usikker på en bestemt parameter, legger du bare til -Full til slutten av din kommando for hjelp og bla ned til parameter-delen, der den vil fortelle deg litt mer om hver parameter.
Get-Help –Name Update-Help –Full
Get-Help –Name *service*
Sikkerhet
Dette ville ikke være en riktig introduksjon uten å nevne sikkerhet. Den største bekymringen for PowerShell-teamet er at PowerShell blir det nyeste og største angrepspunktet for skriptkiddier. De har satt noen få sikkerhetstiltak på plass for å sikre at dette ikke skjer, så la oss ta en titt på dem.
Den mest grunnleggende beskyttelsesformen kommer fra at PS1-filtypen (utvidelsen som brukes til å betegne et PowerShell-skript) ikke er registrert hos en PowerShell-vert, det er faktisk registrert med Notisblokk. Det betyr at hvis du dobbeltklikker på en fil, vil den åpne med notisblokk i stedet for å kjøre.
For det andre kan du ikke kjøre skript fra skallet ved å bare skrive skriptets navn, du må angi hele banen til skriptet. Så hvis du ønsker å kjøre et skript på C-stasjonen din, må du skrive:
C:
unme.ps1
Eller hvis du allerede er på roten til C-stasjonen, kan du bruke følgende:
unme.ps1
Endelig har PowerShell noe som heter Execution Policies, som stopper deg fra å bare kjøre et gammelt skript. Faktisk kan du som standard ikke kjøre noen skript og må endre din utførelsespolicy hvis du vil ha lov til å kjøre dem. Det er 4 bemerkelsesverdige utførelsesretningslinjer:
- begrenset: Dette er standardkonfigurasjonen i PowerShell. Denne innstillingen betyr at ingen skript kan kjøre, uavhengig av signaturen. Det eneste som kan kjøres i PowerShell med denne innstillingen er en individuell kommando.
- AllSigned: Denne innstillingen tillater at skript kjøres i PowerShell. Skriptet må ha en tilhørende digital signatur fra en klarert utgiver. Det vil være en ledig før du kjører skriptene fra klarerte utgivere.
- RemoteSigned: Denne innstillingen tillater at skript kjøres, men krever at skript og konfigurasjonsfiler som lastes ned fra Internett, har en tilhørende digital signatur fra en klarert utgiver. Skript som kjører fra den lokale datamaskinen trenger ikke å bli signert. Det er ingen anrop før du kjører skriptet.
- Ubegrenset: Dette tillater at ikke-signerte skript kjøres, inkludert alle skript og konfigurasjonsfiler som er lastet ned fra Internett. Dette vil inkludere filer fra Outlook og Messenger. Risikoen her kjører skript uten signatur eller sikkerhet. Vi recommenced at du aldri oss denne innstillingen.
Hvis du vil se hva din nåværende utførelsespolicy er satt til, åpner du en PowerShell Console og skriver inn:
Get-ExecutionPolicy
Merk: Dette må gjøres fra en forhøyet PowerShell-konsoll.
Set-ExecutionPolicy RemoteSigned
Ansvarsfraskrivelse: Den riktige termen for en PowerShell-kommando er en cmdlet, og fra nå av vil vi bruke denne riktige terminologien. Det føltes bare mer hensiktsmessig å kalle dem kommandoer for denne introduksjonen.
Hvis du har noen spørsmål, kan du tweet meg @ taybgibb, eller bare gi en kommentar.