PowerShell er ein rammeverk for oppgåveautomatisering og konfigurasjonsadministrasjon utvikla av Microsoft, som består av ein kommandolinje-skal og eit tilknytt skriptspråk. I utgangspunktet retta mot systemadministratorar, gir PowerShell eit kraftig grensesnitt for å automatisere oppgåver og administrere systemkonfigurasjonar ved hjelp av skript og cmdlets (lette kommandoar). Gjennom åra har PowerShell vokse i kapasitet og har utvikla seg betydelig, med vekt på integrasjonen med .NET-rammeverket og moglegheita for plattformuavhengig bruk med PowerShell Core.
PowerShell blei først introdusert i 2006 som "Monad," hovudsakleg for å forbetre systemadministrasjonen på Windows. Det skapte ei bru mellom brukarar og dei underliggjande systemprosessane, med fokus på kommandolinjeskripting. Designet blei påverka av Unix-skal, med vekt på objektorientert programmering gjennom .NET-rammeverkets moglegheiter.
Med lanseringa av Windows Management Framework (WMF) 3.0 i 2012 blei PowerShell meir robust, med innføring av funksjonar som arbeidsflyter og moduler. Komma av PowerShell Core (versjon 6) i 2016 markerte eit viktig milepæl, då det blei designa for å køyre på macOS og Linux, og utvida rekkevidda utover Windows-økosystemet.
Per no blir PowerShell vidareutvikla med ein open kildekode-modell, som tillèt bidrag frå utviklarar over heile verda. Dei nyaste versjonane har innlemma avanserte funksjonalitetar, noko som gjer det relevant ikkje berre for systemadministrasjon, men også for breiare skripting og automatiseringsoppgåver på tvers av ulike plattformer. Forholdet til .NET har blitt djupe, og etablerer det som eit potent skriptingverktøy for utviklarar i ulike miljø.
PowerShell-kommandoar, kjent som cmdlets, følgjer ein verb-substantiv namngjevingstradisjon.
Get-Process
PowerShell støttar pipelining, som gjer at utdata frå ein cmdlet kan vere inngang til ein annan.
Get-Process | Where-Object { $_.CPU -gt 100 }
Variablar i PowerShell er prefiksert med $
og kan halde ein brei rekke av datatypar.
$greeting = "Hello, World!"
PowerShell støttar nativt array og hash-tabellar for enkel datamanipulering.
$array = @(1, 2, 3)
$hash = @{"key" = "value"}
Du kan definere gjenbrukbare funksjonar i PowerShell.
function Greet {
param($name)
"Hello, $name!"
}
Feilhåndtering i PowerShell kan bli administrert ved hjelp av try/catch blokker.
try {
Get-Process -Name "nonexistent"
} catch {
Write-Host "Ein feil oppstod: $_"
}
PowerShell-skript blir lagra med ei .ps1
utviding og kan bli utført direkte.
# myscript.ps1
Write-Host "Køyrer mitt PowerShell-skript"
PowerShell behandlar data som objekt, noko som gjer det enkelt å få tilgang til og manipulere eigenskapar.
$process = Get-Process -Name "powershell"
$process.Id
PowerShell lar deg pakke og distribuere funksjonar som moduler.
Import-Module MyModule
PowerShell støttar fjernstyring, som gjer det mogleg å utføre kommandoar på fjerntjenerar.
Enter-PSSession -ComputerName Server01
PowerShell køyrer på .NET-kjøretida, som legg til rette for utføring av PowerShell-skript og cmdlets på ein svært effektiv måte.
Fleire IDE-ar og redaktørar støttar PowerShell-utvikling, inkludert:
For å lage eit PowerShell-skript kan utviklarar skrive koden sin i ein tekstredaktør og lagre den med ei .ps1
utviding. Prosjekt kan inkludere fleire skript og moduler, organisert i mapper.
PowerShell blir mykje brukt i ulike sektorar for:
PowerShell har relasjonar med ulike programmeringsspråk:
PowerShell-skript kan bli oversatt til språk som støttar automatisering og skripting, som Python eller Bash. Sjølv om det ikkje finst direkte kilde-til-kilde oversettingsverktøy, kan manuell konvertering innebere å skrive om cmdlets til tilsvarande kommandoar eller funksjonar i målspråket.
Eksisterande kilde-til-kilde oversettingsverktøy inkluderer: