PowerShell er et rammeværk til opgaveautomatisering og konfigurationsstyring udviklet af Microsoft, som består af en kommandolinjeskal og et tilknyttet scriptsprog. Oprindeligt rettet mod systemadministratorer, giver PowerShell en kraftfuld grænseflade til at automatisere opgaver og administrere systemkonfigurationer ved hjælp af scripts og cmdlets (lette kommandoer). Gennem årene er PowerShell vokset i kapabilitet og har udviklet sig betydeligt, med fokus på sin integration med .NET-rammeværket og muligheden for tværplatformsbrug med PowerShell Core.
PowerShell blev først introduceret i 2006 som "Monad," primært for at forbedre systemadministration på Windows. Det skabte en bro mellem brugere og de underliggende systemprocesser med fokus på kommandolinjescripting. Dets design blev påvirket af Unix-skaller, med vægt på objektorienteret programmering gennem .NET-rammeværkets kapabiliteter.
Med udgivelsen af Windows Management Framework (WMF) 3.0 i 2012 blev PowerShell mere robust og introducerede funktioner som workflows og moduler. Ankomsten af PowerShell Core (version 6) i 2016 markerede en betydelig milepæl, da det blev designet til at køre på macOS og Linux, hvilket udvidede dets rækkevidde ud over Windows-økosystemet.
I dag fortsætter PowerShell med at blive udviklet med en open-source model, der tillader bidrag fra udviklere over hele verden. De nyeste versioner har inkorporeret avancerede funktioner, hvilket gør det relevant ikke kun for systemadministration, men også for bredere scripting- og automatiseringsopgaver på tværs af forskellige platforme. Dets forhold til .NET er blevet dybere, hvilket etablerer det som et potent scriptingværktøj for udviklere i forskellige miljøer.
PowerShell-kommandoer, kendt som cmdlets, følger en verb-noun navngivningskonvention.
Get-Process
PowerShell understøtter piping, hvilket tillader output fra en cmdlet at fungere som input til en anden.
Get-Process | Where-Object { $_.CPU -gt 100 }
Variabler i PowerShell er præfiksede med $
og kan indeholde en bred vifte af datatyper.
$greeting = "Hej, Verden!"
PowerShell understøtter natively arrays og hash tabeller for nem datamanipulation.
$array = @(1, 2, 3)
$hash = @{"nøgle" = "værdi"}
Du kan definere genanvendelige funktioner i PowerShell.
function Greet {
param($name)
"Hej, $name!"
}
Fejlhåndtering i PowerShell kan styres ved hjælp af try/catch blokke.
try {
Get-Process -Name "nonexistent"
} catch {
Write-Host "Der opstod en fejl: $_"
}
PowerShell-scripts gemmes med en .ps1
-udvidelse og kan udføres direkte.
# myscript.ps1
Write-Host "Kører mit PowerShell-script"
PowerShell behandler data som objekter, hvilket gør det nemt at få adgang til og manipulere egenskaber.
$process = Get-Process -Name "powershell"
$process.Id
PowerShell giver dig mulighed for at pakke og distribuere funktioner som moduler.
Import-Module MyModule
PowerShell understøtter remoting, hvilket muliggør udførelse af kommandoer på fjerntliggende maskiner.
Enter-PSSession -ComputerName Server01
PowerShell kører på .NET-kørselstiden, som letter udførelsen af PowerShell-scripts og cmdlets på en meget effektiv måde.
Flere IDE'er og redaktører understøtter PowerShell-udvikling, herunder:
For at oprette et PowerShell-script kan udviklere skrive deres kode i enhver teksteditor og gemme det med en .ps1
-udvidelse. Projekter kan inkludere flere scripts og moduler, organiseret i mapper.
PowerShell bruges bredt i forskellige sektorer til:
PowerShell har relationer til forskellige programmeringssprog:
PowerShell-scripts kan oversættes til sprog, der understøtter automatisering og scriptingopgaver, som Python eller Bash. Selvom der ikke findes direkte kilde-til-kilde oversættelsesværktøjer, kan manuel konvertering involvere omskrivning af cmdlets til ækvivalente kommandoer eller funktioner i målsproget.
Eksisterende kilde-til-kilde oversættelsesværktøjer inkluderer: