Dit første PowerShell-script

En trin-for-trin guide til at skrive et lille script, gemme det og køre det. Del 1 bruger programmet PowerShell ISE. Del 2 viser det samme i PowerShell-terminalen. Alle billeder er taget på en rigtig Windows 11-pc. Klik på et billede for at se det i fuld størrelse.

Del 1PowerShell ISE

1Find PowerShell ISE

Tryk på Windows-tasten og skriv Windows PowerShell ISE. Vælg Windows PowerShell ISE under Best match, og tryk Enter eller klik på Open.

Windows-søgning med Windows PowerShell ISE som bedste resultat
1
Vælg den almindelige version. Den med (x86) er 32-bit-udgaven, og den skal du ikke bruge.

2ISE er åben

Når ISE starter, ser du tre områder:

PowerShell ISE lige efter start med blå konsol og Commands-panel
1
2
① Konsollen  ② Commands-panelet

3Opret et nyt script

Tryk Ctrl + N, eller vælg File → New. Der åbner en hvid script-rude med fanebladet Untitled1.ps1. Scripts i PowerShell har filendelsen .ps1.

Ny tom script-rude med fanebladet Untitled1.ps1
1
2
① Det nye faneblad  ② Script-ruden, hvor du skriver koden

4Skriv scriptet

Skriv (eller kopiér) koden herunder ind i script-ruden. ISE farver koden, så det er lettere at se, hvad der er kommandoer, variabler og tekst.

# Mit første PowerShell-script
$navn = "Verden"
Write-Host "Hej $navn!" -ForegroundColor Green
Write-Host "Klokken er nu:" (Get-Date -Format "HH:mm")

for ($i = 1; $i -le 3; $i++) {
    Write-Host "Tæller: $i"
}
KodeHvad sker der?
# ...En kommentar. Den bliver ikke kørt og er kun til dig.
$navn = "Verden"Laver en variabel. Variabler i PowerShell starter altid med $.
Write-HostSkriver tekst på skærmen. -ForegroundColor Green gør teksten grøn.
Get-DateHenter dato og klokkeslæt. -Format "HH:mm" viser kun timer og minutter.
for (...) { }En løkke, der kører koden mellem { } tre gange, med $i = 1, 2 og 3.
Scriptet skrevet ind i script-ruden
1
2
① Stjernen i Untitled1.ps1* betyder, at filen ikke er gemt endnu.  ② Din kode

5Gem scriptet

Tryk Ctrl + S, eller vælg File → Save. Vælg en mappe, giv filen et navn, fx hej.ps1, og klik Save. I eksemplet gemmes filen i mappen C:\Users\hulve\Scripts.

Save As-dialogen med filnavnet hej.ps1
1
2
① Filnavn (husk .ps1)  ② Save
Fanebladet hedder nu hej.ps1
1
① Fanebladet hedder nu hej.ps1, og stjernen er væk, så filen er gemt.

6Kør scriptet med F5

Tryk F5, eller klik på den grønne afspilknap Run Script i værktøjslinjen. Scriptet bliver kørt, og resultatet vises i den blå konsol nederst.

Scriptet er kørt, og output vises i konsollen
1
2
3
① Run Script (F5)  ② Output: grøn hilsen, klokkeslæt og tælleren 1–3  ③ Completed betyder, at scriptet er færdigt.
Tip: kør kun en del af koden Markér en eller flere linjer og tryk F8 (Run Selection, knappen lige til højre for den grønne). Så køres kun det, du har markeret. Det er smart, når du vil afprøve en enkelt linje.

7Kør scriptet fra konsollen

Et gemt script kan også køres ved at skrive stien i konsollen. Klik i den blå konsol (eller tryk Ctrl + D), skriv kommandoen herunder og tryk Enter:

& C:\Users\hulve\Scripts\hej.ps1

Tegnet & betyder "kør denne fil". Står du allerede i mappen, er .\hej.ps1 nok.

Scriptet kørt fra konsollen med &-operatoren
1
① Samme script, nu startet fra konsollen

Del 2PowerShell-terminalen

Du behøver ikke ISE for at køre PowerShell. I terminalen skriver du kommandoer én ad gangen og ser svaret med det samme. Her kører vi hej.ps1 fra del 1 og laver derefter et nyt script med Notesblok.

1Åbn Windows PowerShell

Tryk på Windows-tasten og skriv Windows PowerShell. Vælg Windows PowerShell (App), og tryk Enter. Pas på, at du ikke vælger ISE, som står lige under.

Windows-søgning med Windows PowerShell som bedste resultat
1
① Windows PowerShell, uden ISE i navnet

Der åbner et sort terminalvindue. Linjen PS C:\Users\hulve> hedder prompten. Den viser, hvilken mappe du står i, og at PowerShell venter på en kommando.

Nyt Windows PowerShell-vindue i Windows Terminal
1
① Prompten: PS + den mappe, du står i. På Windows 10 er vinduet blåt, men det virker på samme måde.

2Kør en kommando

Skriv Get-Date og tryk Enter. PowerShell kører kommandoen med det samme og viser dato og klokkeslæt. Bagefter kommer prompten igen, klar til næste kommando.

Get-Date kørt i terminalen
1
① Kommandoen og dens svar
Tip: skriv mindre Tryk Tab for at gøre en kommando eller et filnavn færdigt. Prøv at skrive Get-Da og tryk Tab. Med ↑ henter du den forrige kommando frem igen.

3Gå til mappen med scriptet

Skriv cls for at rydde skærmen. Skriv derefter cd Scripts for at gå ind i mappen Scripts, og ls for at se, hvilke filer der ligger i den.

cd Scripts
ls
cd Scripts og ls viser filen hej.ps1
1
2
① Prompten viser nu ...\Scripts  ② Filen hej.ps1 fra del 1
cd mappeGå ind i en mappe
cd ..Gå én mappe op
lsVis filer og mapper (samme som dir og Get-ChildItem)
clsRyd skærmen

4Kør scriptet

Skriv .\hej.ps1 og tryk Enter. .\ betyder "i den mappe, jeg står i".

hej.ps1 kørt i terminalen
1
① Samme resultat som i ISE

Typisk fejl: Skriver du kun hej.ps1 uden .\, kan PowerShell ikke finde scriptet. PowerShell kører nemlig ikke filer fra den mappe, du står i, medmindre du skriver .\ foran. Læs den gule Suggestion nederst, for den fortæller præcis, hvad du skal skrive.

Fejl når man skriver hej.ps1 uden punktum og backslash
1
2
① Fejlen: not recognized  ② Forslaget: skriv .\hej.ps1

5Lav et nyt script med Notesblok

Du kan lave et nyt script direkte fra terminalen. Skriv:

notepad tid.ps1

Filen findes ikke endnu, så Notesblok spørger, om den skal oprettes. Klik Yes.

Notesblok spørger om den skal oprette tid.ps1
1
① Yes opretter den tomme fil

Skriv koden herunder, gem med Ctrl + S og luk Notesblok.

# Script lavet fra terminalen
$tid = Get-Date -Format "HH:mm"
Write-Host "Hej fra terminalen!" -ForegroundColor Cyan
Write-Host "Klokken er $tid"
Scriptet tid.ps1 skrevet i Notesblok
1
2
① Filnavnet tid.ps1  ② Koden. Notesblok farver ikke koden som ISE, men scriptet virker lige godt.

6Kør det nye script

Tilbage i terminalen skriver du .\tid.ps1 og trykker Enter.

tid.ps1 kørt i terminalen
1
① Dit nye script virker: cyan hilsen og klokkeslæt

⇄ISE eller terminal?

PowerShell ISETerminal
Skrive scriptsIndbygget editor med farver og forslagBrug en editor, fx Notesblok eller VS Code
Køre et scriptF5.\navn.ps1
Afprøve én linjeMarkér og tryk F8Skriv linjen og tryk Enter
Godt tilAt lære og at skrive længere scriptsHurtige kommandoer og at køre færdige scripts

?Hvis det ikke virker

ProblemLøsning
Rød fejl: running scripts is disabled on this system Windows tillader ikke scripts endnu. Kør denne kommando én gang i konsollen, og svar Y:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Terminalen siger is not recognized, når du kører et script Skriv .\ foran filnavnet, fx .\hej.ps1, og tjek med ls, at du står i den rigtige mappe.
Du kan ikke se script-ruden Tryk Ctrl + R, eller klik på den lille pil ved Script øverst til højre i konsollen.
Æ, ø og å bliver til mærkelige tegn Gem filen fra ISE. ISE gemmer som UTF-8, så de danske bogstaver bliver vist rigtigt.
Fejl om en kommando, der ikke findes Tjek stavningen. Bindestregen i fx Write-Host skal med, og der må ikke være mellemrum.

Nyttige genveje

Ctrl + NNyt script
Ctrl + SGem
F5Kør hele scriptet
F8Kør markeret kode
Ctrl + BreakStop et script, der kører
Ctrl + RVis/skjul script-ruden
Ctrl + DHop til konsollen
Ctrl + IHop til script-ruden