Powershell-opplæring for nybegynnere
⚡ Smart oppsummering
PowerShell Scripting er en objektorientert automatiseringsmotor bygget på .NET-rammeverket. Den kombinerer cmdleter, skript og et skriptspråk for å hjelpe IT-administratorer med å automatisere Windows, administrere tjenester og koble til eksterne maskiner fra én kommandolinje.

Hva er PowerShell?
Windows PowerShell er en objektorientert automatiseringsmotor og skriptspråk. Den er utviklet for IT-fagfolk og systemadministratorer som trenger å kontrollere og automatisere administrasjonen av Windows og andre applikasjoner. PowerShell utvider konseptene som er lært i Windows Ledetekst og Windows Skriptvert med nye objekter, cmdleter og en kraftig pipeline.
Den kombinerer fleksibiliteten til skripting, hastigheten til en kommandolinje og dybden til et GUI-administrasjonsverktøy. Med den kan administratorer løse problemer effektivt og eliminere timer med manuelt arbeid. Denne veiledningen går gjennom det viktigste du trenger for å lære PowerShell fra bunnen av.
Hvorfor bruke PowerShell?
De viktigste grunnene til å bruke PowerShell er:
- Tilbyr en godt integrert kommandolinjeopplevelse for operativsystemet.
- Gir full tilgang til alle typer i .NET-rammeverket.
- Klarert av systemadministratorer på tvers av bedrifter.
- Lar deg manipulere server- og arbeidsstasjonskomponenter med noen få linjer.
- Rettet mot systemadministratorer med en ren verb-substantiv-syntaks.
- Tryggere enn å løpe VBScript eller andre eldre skriptspråk.
PowerShell-historie
PowerShell 1.0 ble først utgitt i 2006. PowerShell er nå i versjon 7.2 og nyere. Etter hvert som utgivelsene ble sendt, vokste funksjonene og hostingmiljøene betydelig.
Versjonshistorikk for PowerShell:
- PowerShell 1.0 — støttet lokal administrasjon av Windows 2003-server.
- PowerShell 2.0 — integrert med Windows 7 og Windows Server 2008 R2. La til fjernstyring, transaksjoner, bakgrunnsjobber, hendelser og feilsøking.
- PowerShell 3.0 — sendes med Windows 8 og Windows Server 2012 som en del av Windows Administrasjonsrammeverk. La til planlagte jobber, økttilkobling og automatisk modulinnlasting.
- PowerShell 4.0 — sendes med Windows 8.1 og Windows Server 2012 R2. La til ønsket tilstandskonfigurasjon, forbedret feilsøking og nettverksdiagnostikk.
- PowerShell 5.0 — en del av Windows Management Framework 5. La til ekstern feilsøking, klassedefinisjoner og .NET-opplistinger.
- PowerShell 7.2 — bygget på .NET 6.0. Legger til nye operatorer, dynamiske feilvisninger og automatiske versjonsvarsler.
Funksjoner i PowerShell
- PowerShell-fjernstyring: kalle skript og cmdleter på en ekstern maskin.
- Bakgrunnsjobber: kjøre skript eller pipelines asynkront på den lokale maskinen eller mange eksterne maskiner.
- transaksjoner: la cmdleter og utviklere utføre grupperte operasjoner som kan iverksettes eller rulles tilbake sammen.
- Arrangement: lytte etter, videresende og handle på ledelses- og systemhendelser.
- Filoverføring via nettverk: innebygd støtte for prioritert, asynkron, begrenset filoverføring mellom maskiner gjennom Background Intelligent Transfer Service (BITS).
Slik starter du PowerShell
PowerShell er forhåndsinstallert på alle nyere versjoner av WindowsStart den slik.
Trinn 1) Søk etter PowerShell i Windows, og velg deretter og klikk på den.
Trinn 2) PowerShell-vinduet åpnes.
Cmdlet vs Command
A cmdlet (uttales «command-let») er en lett kommando som brukes i PowerShell-miljøet. PowerShell starter cmdlets ved ledeteksten, og du kan opprette dine egne ved hjelp av PowerShell API-ene. Cmdlets skiller seg fra tradisjonelle skallkommandoer på følgende måter:
- Cmdlets er . NET Framework klasseobjekter; de kan ikke kjøres som frittstående kjørbare filer.
- Cmdlets kan skrives på så få som et dusin linjer med kode.
- Parsing, formatering av utdata og presentasjon av feil håndteres av kjøretiden, ikke av selve cmdleten.
- Cmdleter fungerer med objekter, slik at både tekststrømmer og objekter kan flyte gjennom pipelines.
- Cmdleter er postbaserte og behandler ett enkelt objekt om gangen.
Mesteparten av PowerShell-funksjonaliteten leveres via cmdleter, som alltid bruker et verb-substantiv navngivningsmønster (alltid entall). Cmdleter returnerer objekter, ikke tekst. script — forskjellig fra en cmdlet — er en serie kommandoer lagret i en tekstfil med .ps1 Utvidelse.
Vanlige verb du vil bruke for å lære PowerShell inkluderer:
- Ta – hente noe.
- Start – drive noe.
- Out — sende ut noe.
- Stopp – stoppe noe som er i gang.
- Sett – definere noe.
- Ny – skape noe.
Viktige PowerShell-kommandoer
Få hjelp: se hjelp for PowerShell-kommandoer og -emner.
Eksempel: vis hjelp for Format-Table kommando.
Get-Help Format-Table
Hent-kommando: få informasjon om alt som kan påberopes.
Eksempel: generer en liste over cmdleter og funksjoner som er installert på maskinen.
Get-Command
Få-tjeneste: finner alle tjenester på maskinen.
Eksempel: hent alle tjenester med navn som begynner med «vm».
Get-Service "vm*"
Hent medlem: vise hva som kan gjøres med et objekt.
Eksempel: liste opp medlemmer av VM-tjenestene som returneres av Get-Service.
Get-Service "vm*" | Get-Member
Andre nyttige cmdleter:
Get-Module— vis installerte pakker med kommandoer.Get-Content— lese en fil og behandle innholdet.Get-*jokertegn – oppgi alle cmdlet-er som starter med «Get-».
Eksempel: opprett en mappe.
New-Item -Path 'X:\Guru99' -ItemType Directory
Utgang:
PowerShell-datatyper
PowerShell støtter standard .NET-datatyper, slik at du kan lagre en hvilken som helst verdi rent i en variabel.
Spesielle variabler
PowerShell eksponerer en rekke innebygde spesialvariabler. De mest nyttige er listet opp nedenfor.
| Spesiell variabel | Tekniske beskrivelser |
|---|---|
| $Error | En matrise med feilobjekter som representerer de nyeste feilene. |
| $Vert | Viser navnet på gjeldende vertsapplikasjon. |
| $Profile | Lagrer hele banen til brukerprofilen for standardskallet. |
| $PID | Lagrer prosessidentifikatoren. |
| $PSUICulture | Inneholder navnet på den nåværende brukergrensesnittkulturen. |
| $NULL | Inneholder den tomme verdien eller nullverdien. |
| $False | Inneholder den boolske verdien FALSE. |
| $True | Inneholder den boolske verdien TRUE. |
PowerShell-skript
PowerShell-skript lagres i .ps1 filer. Som standard kan du ikke kjøre et skript ved å dobbeltklikke på det – denne sikkerhetstiltakene beskytter systemet mot utilsiktet skade. For å kjøre et skript, høyreklikk på det og velg "Kjør med PowerShell".
En utførelsespolicy styrer hvilke skript som får kjøre. Vis gjeldende policy med Get-ExecutionPolicyMulige verdier inkluderer:
- begrenset — ingen skript er tillatt. Dette er standardinnstillingen.
- Allsignert – bare skript signert av en pålitelig utvikler kjøres, og hvert skript krever bekreftelse.
- Fjernsignert — dine egne skript kjøres, pluss signerte skript fra pålitelige kilder.
- Ubegrenset — alle skript kan kjøres (bruk sparsomt).
Fremgangsmåte for å endre utførelsespolicy:
Trinn 1) Åpne en forhøyet PowerShell-ledetekst ved å høyreklikke på PowerShell og velge Kjør som Administrator.
Trinn 2) Kjør kommandoene nedenfor.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Enter
Yved bekreftelsesspørsmålet. Get-ExecutionPolicy
Første PowerShell-skript
Åpne Notisblokk og skriv:
Write-Host "Hello, Guru99!"
Lagre filen med en .ps1 utvidelse – for eksempel FirstScript.ps1.
I PowerShell, kjør skriptet med:
& "X:\FirstScript.ps1"
Hva er PowerShell ISE?
Ocuco Windows PowerShell Integrated Scripting Environment (ISE) er standardredigeringsprogrammet for PowerShell. I ISE kan du kjøre kommandoer, skrive tester og feilsøke skript i et grafisk, vindusbasert miljø. Det støtter redigering av flere linjer, syntaksfarging, tabulatorfullføring, selektiv utførelse og mer.
PowerShell ISE tilbyr også en konsollrute som kjører kommandoer direkte, mens sideruter viser kilden til skriptene dine og eventuelle verktøy som er koblet til ISE. Du kan åpne flere skriptvinduer samtidig – nyttig når du feilsøker skript som er avhengige av funksjoner definert i andre skript eller moduler.
Gjenskap det tidligere skriptet i ISE:
- Lim inn koden i editoren.
- Lagre skriptet.
- Trykk F5 for å kjøre den.
- Observer utdataene i konsollruten.
Eksempel 2: følgende skript viser gratis virtuelt minne på maskinen.
Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory
PowerShell Concepts
Følgende konsepter danner vokabularet for det daglige PowerShell-arbeidet.
| Concept | Tekniske beskrivelser |
|---|---|
| Cmdlets | Innebygde kommandoer skrevet i .NET-språk som VB eller C#. Utviklere utvider settet ved å laste inn eller skrive PowerShell-snap-ins. |
| Funksjoner | Kommandoer skrevet i selve PowerShell-språket, uten behov for en IDE som for eksempel Visual Studio. |
| scripts | Tekstfiler på disk med .ps1 Utvidelse. |
| Applikasjoner | Eksisterende Windows programmer som kalles fra skallet. |
| Hva om | Forteller cmdlet-en at den ikke skal kjøres, men at den skal beskrive hva som ville skje hvis den gjorde det. |
| Bekrefte | Instruerer cmdleten til å spørre før kjøring. |
| utførlig | Gir et høyere nivå av operative detaljer. |
| Debug | Instruerer cmdlet-en til å sende ut feilsøkingsinformasjon. |
| Feilhandling | Definerer hva cmdlet-en gjør ved feil. Tillatte verdier: continue, stop, silentlycontinue, inquire. |
| ErrorVariable | Navngir variabelen som inneholder feilinformasjon. |
| Utvariabel | Ber cmdleten om å lagre utdataene i en bestemt variabel. |
| OutBuffer | Holder et bestemt antall objekter før de sendes nedover pipelinen. |
Fordeler med å bruke PowerShell-skript
- PowerShell-skript er kraftige og konsise – du kan oppnå mye på bare noen få linjer.
- Variabler deklareres med
$<variable>syntaks. - Variabler kan inneholde kommandoutdata, objekter og primitive verdier.
- Variabeltypen trenger ikke å spesifiseres eksplisitt.
PowerShell vs. ledetekst
| PowerShell | Ledetekst |
|---|---|
| Dypt integrert med WindowsTilbyr en interaktiv kommandolinje og et komplett skriptspråk. | Standard kommandolinjegrensesnitt levert av MicrosoftEt enkelt Win32-program som kommuniserer med andre Win32-objekter. |
| Bruker cmdleter som kan kalles interaktivt eller gjennom automatiseringsskript. | Ingen cmdleter. |
| Behandler utdata som objekter slik at de kan flyte inn i en annen cmdlet gjennom pipelinen. | Utdataene er en ren tekststrøm, ikke objekter. |
| Avansert innen funksjoner, muligheter og intern arkitektur. | Grunnleggende skall, egnet for eldre batchoppgaver. |
Bruksområder for PowerShell
PowerShell har blitt standardvalget for IT-administratorer fordi det reduserer innsatsen dramatisk på tvers av store bedriftsnettverk. Tenk deg å administrere mer enn fire hundre servere og rulle ut en ny sikkerhetsløsning som er avhengig av en spesifikk tjeneste som kjører på hver vert.
Manuell pålogging til hver server er treg og utsatt for feil. Ett enkelt PowerShell-skript kan undersøke hver server på få minutter, rapportere hvilke verter som allerede kjører tjenesten, og til og med aktivere den på resten. Skriptet fanger opp intensjonen én gang og bruker den pålitelig på tvers av hele systemet.
















