Oprindelig publiceringsdato: 9. december 2025
KB-id: 5074596
I denne artikel beskrives en ændring, der primært påvirker virksomhedsmiljøer eller it-administrerede miljøer, hvor PowerShell-scripts bruges til automatisering og hentning af webindhold. Mennesker brug af enheder i personlige indstillinger eller hjemmeindstillinger behøver generelt ikke at foretage dig noget, da disse scenarier er ualmindelige uden for it-administrerede miljøer.
|
Skift dato |
Skift beskrivelse |
|
20. december 2025 |
|
Sammendrag
Windows PowerShell 5.1 viser nu en sikkerhedsbekræftelsesprompt, når du bruger kommandoen Invoke-WebRequest til at hente websider uden særlige parametre.
Sikkerhedsadvarsel: Script Execution Risk Invoke-WebRequest fortolker indholdet af websiden. Scriptkoden på websiden kan køres, når siden fortolkes.
ANBEFALET HANDLING: Brug parameteren -UseBasicParsing for at undgå udførelse af scriptkode.
Vil du fortsætte?
Denne prompt advarer om, at scripts på siden kan køre under fortolkning og anbefaler brug af parameteren -UseBasicParsing for at undgå scriptkørsel. Brugerne skal vælge at fortsætte eller annullere handlingen. Denne ændring er med til at beskytte mod skadeligt webindhold ved at kræve brugersamtykke, før der kan blive udført potentielt risikable handlinger.
PowerShells Invoke-WebRequest-kommando foretager en HTTP- eller HTTPS-anmodning til en webserver og returnerer resultaterne. Denne artikel dokumenterer en hærdningsændring, hvor Windows PowerShell 5.1 bevidst viser en sikkerhedsbekræftelsesprompt, når du bruger kommandoen Invoke-WebRequest til at hente websider uden særlige parametre. Dette problem opstår, når understøttede Windows-klienter og -servere har installeret Windows Opdateringer udgivet den 9. december 2025 og derefter. Du kan få mere at vide under CVE-2025-54100.
Hvad har ændret sig?
-
Tidligere funktionsmåde
-
Komplet fortolkning af DOM (Document Object Model) ved hjælp af Internet Explorer-komponenter (HTMLDocument Interface (mshtml)), som kan udføre scripts fra hentet indhold.
-
-
Ny funktionsmåde
-
Prompt til sikkerhedsbekræftelse: Når du har installeret de Windows-opdateringer, der er udgivet den 9. december 2025 eller derefter, vil kørsel af kommandoen Invoke-WebRequest (også kaldet krølle) i PowerShell 5.1 udløse en sikkerhedsprompt (når der ikke bruges en særlig parameter). Prompten vises i PowerShell-konsollen med en advarsel om Script Execution Risk. Det betyder, at PowerShell afbryder midlertidigt for at advare dig om, at websidescriptindholdet kan udføres på dit system, når det behandles, uden at der er nogen forholdsregler. Hvis du trykker på Enter (eller vælger Nej), annulleres handlingen som standard af sikkerhedsmæssige årsager. PowerShell viser en meddelelse om, at den blev annulleret på grund af sikkerhedsproblemer, og foreslår, at kommandoen køres igen ved hjælp af parameteren -UseBasicParsing til sikker behandling. Hvis du vælger Ja, fortsætter PowerShell med at fortolke siden ved hjælp af den ældre metode (fuld HTML-fortolkning), hvilket betyder, at det indlæser indholdet og eventuelle integrerede scripts, som det plejede at gøre. Hvis du vælger Ja, betyder det, at du accepterer risikoen og tillader, at kommandoen kører, som den gjorde før, mens du vælger Nej (standardindstillingen) stopper handlingen for at beskytte dig.
-
Interaktiv vs. Scripted Use: Introduktionen af denne prompt påvirker primært interaktiv brug. I interaktive sessioner får du vist advarslen og skal svare. I forbindelse med automatiserede scripts (ikke-interaktive scenarier, f.eks. planlagte opgaver eller CI-pipelines), kan denne meddelelse medføre, at scriptet hænger, mens du venter på input. For at undgå dette anbefaler vi, at du opdaterer sådanne scripts til eksplicit at bruge sikre parametre (se nedenfor), så de ikke kræver manuel bekræftelse.
-
Gør noget
De fleste PowerShell-scripts og kommandoer, der bruger kommandoen Invoke-WebRequest, vil fortsat fungere med kun få eller ingen ændringer. Scripts, der kun downloader indhold eller arbejder med svarteksten som tekst eller data, påvirkes f.eks. ikke og kræver ingen ændringer.
Hvis du har scripts, der påvirkes af denne ændring, skal du bruge en af følgende fremgangsmåder.
Ved hentning af indhold kræves der ingen handling, hvis din typiske brug af kommandoen Invoke-WebRequest er at hente indhold (f.eks. hente filer eller læse statisk tekst), og du ikke er afhængig af avanceret webstedsinteraktion eller HTML DOM-fortolkning. Den nye standardfunktionsmåde er mere sikker – scripts, der er integreret i webindhold, kører ikke uden din tilladelse – og dette er den anbefalede konfiguration til de fleste scenarier.
Ved interaktiv brug skal du blot svare Nej på den nye sikkerhedsprompt (eller trykke på Enter for at acceptere standardindstillingen) og køre din kommando igen med parameteren -UseBasicParsing for sikkert at hente indholdet. Dette vil undgå at udføre scriptkode på den hentede side. Hvis du ofte henter webindhold interaktivt, kan du overveje at bruge parameteren -UseBasicParsing som standard i dine kommandoer til at springe prompten helt over og sikre maksimal sikkerhed.
For automatiserede scripts eller planlagte opgaver skal du opdatere dem, så de indeholder parameteren -UseBasicParsing på Invoke-WebRequest-kald. Dette fravælger den sikre funktionsmåde, så prompten ikke vises, og dit script fortsætter med at køre uden afbrydelse. Ved at gøre dette sikrer du, at din automatisering kører problemfrit efter opdateringen, mens du stadig drager fordel af den forbedrede sikkerhed.
-
For scripts, der kører med indstillingen -NoProfile: Hvis scriptet har mange forekomster af kaldene Invoke-WebRequest, skal du erklære $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true øverst i scriptet.
-
Når Invoke-WebRequest bruges sammen med parameteren -UseBasicParsing , er det ikke muligt at fortolke fuld dokumentobjektmodel (DOM) ved hjælp af Internet Explorer-komponenter (HTMLDocument Interface (mshtml)) .
For scripts eller automatisering, der håndterer upålideligt eller offentligt webindhold og kræver behandling af HTML-strukturer eller -formularer, bør du overveje at refaktorere eller opdatere dem for langsigtet sikkerhed. I stedet for at være afhængig af, at PowerShell fortolker og kører potentielt farlige websidescripts, kan du:
-
Brug alternative fortolkningsmetoder eller biblioteker (f.eks. behandle websideindholdet som almindelig tekst eller XML ved hjælp af regex- eller XML/HTML-fortolkningsbiblioteker, der ikke udfører scripts).
-
Modernisere din tilgang til webinteraktioner, måske ved hjælp af nyere PowerShell Core (version 7.x eller nyere), som ikke afhænger af Internet Explorers program og undgår at køre scripts, eller ved at bruge specialiserede webudskrabningsværktøjer, der håndterer indhold mere sikkert. Begræns afhængigheden af Internet Explorer-specifikke funktioner, da Internet Explorer frarådes. Planlæg at omskrive dele af dine scripts, der er afhængige af disse funktioner, så de kan arbejde i et miljø, hvor webindhold håndteres sikkert.
-
Invoke-WebRequest i PowerShell Core (version 7.x eller nyere) understøtter ikke DOM-fortolkning ved hjælp af Internet Explorer-komponenter. Dens standardparsing henter sikkert indholdet uden scriptudførelse.
-
-
Målet med refaktorisering er at opnå den nødvendige funktionalitet uden at udsætte dig selv for sikkerhedsrisici og dermed tage godt hensyn til de mere sikre standarder, som denne ændring introducerer.
Hvis du har et specifikt behov for at bruge kommandoen Invoke-WebRequests fulde HTML-fortolkningsfunktioner (f.eks. interaktion med formularfelter eller skrabe strukturerede data), og du har tillid til kilden til webindholdet, kan du stadig fortsætte med den ældre fortolkningsfunktionsmåde fra sag til sag. I interaktive sessioner betyder det blot, at du skal vælge Ja i bekræftelsesmeddelelsen for at tillade, at handlingen fortsætter. Du modtager en påmindelse om sikkerhedsrisikoen, hver gang du gør det. Hvis du fortsætter uden parameteren -UseBasicParsing, skal du være begrænset til scenarier, hvor du har fuld tillid til webindholdet (f.eks. interne webprogrammer under din kontrol eller kendte sikre websteder).
Vigtigt!: Denne fremgangsmåde anbefales ikke til scripts, der kører mod upålideligt eller offentligt webindhold, fordi den genindfører risikoen for uovervåget scriptudførelse, som denne opdatering har til formål at reducere. For ikke-interaktiv automatisering er der heller ingen indbygget mekanisme til automatisk at give samtykke til prompten, så det er ikke tilrådeligt at stole på fuld fortolkning i scripts (ud over at være risikabelt). Brug denne indstilling sparsomt og kun som en midlertidig måling.
Ofte stillede spørgsmål
I de fleste tilfælde vil scripts, der downloader filer eller henter webindhold som tekst, stadig fungere. Du kan undgå prompten ved at tilføje parameteren -UseBasicParsing.
Scripts, der bruger avanceret HTML-fortolkning (f.eks. formularer eller DOM), kan hænge eller skrive rå data i stedet for strukturerede objekter. Du skal skifte til grundlæggende fortolkning eller ændre dit script for at håndtere indhold på en anden måde.
Brug altid parameteren -UseBasicParsing med kommandoen Invoke-WebRequest i PowerShell-scripts for at sikre sikker, ikke-interaktiv udførelse.
Ja. Scripts, der afhænger af ældre fortolkninger, skal opdateres for at tilmelde sig eller refaktore.
Ændringen i PowerShell gælder for både standardopdateringer og hotpatch-opdateringer, hvilket resulterer i den samme funktionsmådeændring.
Ja. PowerShell 7 bruger allerede sikker fortolkning som standard.
Kontakt modulejere for at få supportplaner. Brug tilvalg midlertidigt til indhold, der er tillid til, under overførslen.
For at forberede og validere denne ændring anbefaler vi, at du:
-
Identificer scripts ved hjælp af DOM-funktioner.
-
Test automatisering med den nye standard.
-
Begræns ældre tilmeldinger til pålidelige kilder.
-
Planlæg omstrukturering af upålideligt indhold.