Původní datum publikování: úterý 9. prosince 2025
ID znalostní báze: 5074596
Shrnutí
Windows PowerShell 5.1 teď při použití příkazu Invoke-WebRequest k načtení webových stránek bez speciálních parametrů zobrazí výzvu k potvrzení zabezpečení. Tato výzva varuje, že skripty na stránce by mohly běžet během analýzy, a doporučuje použití parametru safer -UseBasicParsing, aby se zabránilo spuštění skriptu. Uživatelé musí v operaci pokračovat nebo ji zrušit. Tato změna pomáhá chránit před škodlivým webovým obsahem tím, že před potenciálně rizikovými akcemi vyžaduje souhlas uživatele.
Tato změna se týká především podnikových nebo IT prostředí, kde se skripty PowerShellu používají k automatizaci a načítání webového obsahu. Lidé používání zařízení v osobním nebo domácím nastavení obvykle nemusí provádět žádnou akci, protože tyto scénáře jsou neobvyklé mimo nasazení spravovaná IT.
Co se změnilo?
-
Předchozí chování
-
Úplná analýza modelu DOM (Document Object Model) pomocí komponent aplikace Internet Explorer (HTMLDocument Interface (mshtml)), které by mohly spouštět skripty ze staženého obsahu.
-
-
Nové chování
-
Výzva k potvrzení zabezpečení: Po instalaci aktualizací Windows vydaných 9. prosince 2025 nebo později spuštěním příkazu Invoke-WebRequest (označovaného také jako curl) v PowerShellu 5.1 se aktivuje výzva zabezpečení (pokud se nepoužívá žádný speciální parametr). V konzole PowerShellu se zobrazí výzva s upozorněním na riziko spuštění skriptu. To znamená, že PowerShell se pozastavuje, aby vás upozornil, že bez bezpečnostních opatření by se obsah skriptu webové stránky mohl spustit ve vašem systému při jeho zpracování. Pokud stisknete Enter (nebo zvolíte Ne), operace se z důvodu bezpečnosti ve výchozím nastavení zruší. PowerShell zobrazí zprávu, že byl zrušen z důvodu zabezpečení, a navrhne opětovné spuštění příkazu pomocí parametru -UseBasicParsing pro bezpečné zpracování. Pokud zvolíte Ano, PowerShell bude pokračovat v parsování stránky pomocí starší metody (úplná analýza HTML), což znamená, že načte obsah a všechny vložené skripty jako dřív. Volba Ano v podstatě znamená, že přijímáte riziko a povolujete spuštění příkazu stejně jako předtím, zatímco zvolením možnosti Ne (výchozí) se akce zastaví, aby vás chránila.
-
Interaktivní vs. skriptované použití: Zavedení této výzvy má vliv především na interaktivní využití. V interaktivních relacích se zobrazí upozornění a budete muset reagovat. U automatizovaných skriptů (neinteraktivní scénáře, jako jsou naplánované úlohy nebo kanály CI) může tato výzva způsobit zablokování skriptu a čeká na vstup. Abyste tomu předešli, doporučujeme tyto skripty aktualizovat tak, aby explicitně používaly bezpečné parametry (viz níže), a ujistěte se, že nevyžadují ruční potvrzení.
-
Přijmout opatření
Většina skriptů a příkazů PowerShellu, které používají příkaz Invoke-WebRequest, bude dál fungovat s minimálními nebo žádnými úpravami. Například skripty, které stahují jenom obsah nebo pracují s textem odpovědi jako textem nebo daty, nejsou ovlivněny a nevyžadují žádné změny.
Pokud máte skripty, které jsou touto změnou ovlivněny, použijte jeden z následujících přístupů.
Pokud obvykle používáte příkaz Invoke-WebRequest k načtení obsahu (například stahování souborů nebo čtení statického textu) a nespoléháte se na pokročilou interakci s webem nebo parsování HTML DOM. Nové výchozí chování je bezpečnější – skripty vložené do webového obsahu se nespustí bez vašeho svolení – a toto je doporučená konfigurace pro většinu scénářů.
V případě interaktivního použití jednoduše na novou výzvu zabezpečení odpovězte ne (nebo stisknutím klávesy Enter přijměte výchozí nastavení) a znovu spusťte příkaz s parametrem -UseBasicParsing, který bezpečně načte obsah. Tím se vyhnete spuštění kódu skriptu na načtené stránce. Pokud často načítáte webový obsah interaktivně, zvažte použití parametru -UseBasicParsing ve výchozím nastavení v příkazech, abyste výzvu úplně přeskočili a zajistili maximální bezpečnost.
U automatizovaných skriptů nebo plánovaných úloh je aktualizujte tak, aby zahrnovaly parametr -UseBasicParsing ve volání Invoke-WebRequest. Tím se předem vybere bezpečné chování tak, že se výzva nezobrazí a skript bude dál běžet bez přerušení. Tím zajistíte, že vaše automatizace po aktualizaci poběží bez problémů a zároveň bude využívat vylepšené zabezpečení.
V případě skriptů nebo automatizace, které pracují s nedůvěryhodným nebo veřejným webovým obsahem a vyžadují zpracování struktur nebo formulářů HTML, zvažte refaktoring nebo aktualizaci z důvodu dlouhodobé bezpečnosti. Místo toho, abyste se při parsování a spouštění potenciálně nebezpečných skriptů webových stránek nespoléhali na PowerShell, můžete:
-
Použijte alternativní metody nebo knihovny parsování (například s obsahem webové stránky zacházejte jako s prostým textem nebo XML, s využitím knihoven regex nebo knihoven parsování XML/HTML, které nespouštějí skripty).
-
Modernizujte svůj přístup k webovým interakcím, například pomocí novějšího PowerShellu Core (verze 7.x nebo novější), který nezávisí na modulu Internet Exploreru a vyhýbá se spouštění skriptů, nebo pomocí specializovaných webových nástrojů, které zpracovávají obsah bezpečněji.
-
Omezte závislost na funkcích specifických pro Internet Explorer, protože Internet Explorer je zastaralý. Naplánujte si přepsat části skriptů, které jsou na těchto funkcích závislé, aby mohly fungovat v prostředí, kde se webový obsah zpracovává bezpečně.
-
Cílem refaktoringu je dosáhnout potřebných funkcí, aniž byste se museli vystavit bezpečnostním rizikům, a tím přijmout bezpečnější výchozí hodnoty, které tato změna zavádí.
Pokud máte konkrétní potřebu používat příkazy Invoke-WebRequest úplné funkce parsování HTML (například interakci s poli formuláře nebo scrapování strukturovaných dat) a zdroji webového obsahu důvěřujete, můžete pokračovat ve starší verzi parsování případ od případu. V interaktivních relacích to jednoduše znamená, že v potvrzovací výzvě zvolíte Ano, aby operace mohla pokračovat. Pokaždé, když to uděláte, obdržíte připomenutí o bezpečnostním riziku. Pokračování bez parametru -UseBasicParsing by mělo být omezeno na scénáře, ve kterých plně důvěřujete webovému obsahu (například interním webovým aplikacím pod kontrolou nebo známým bezpečným webům).
Důležité informace: Tento přístup se nedoporučuje pro skripty spuštěné s nedůvěryhodným nebo veřejným webovým obsahem, protože znovu představuje riziko spuštění tichých skriptů, které má tato aktualizace zmírnit. Pro neinteraktivní automatizaci také neexistuje žádný integrovaný mechanismus pro automatické vyjádření souhlasu s výzvou, takže spoléhat se na úplné parsování ve skriptech není vhodné (kromě toho, že je to riskantní). Tuto možnost používejte střídmě a jenom jako dočasné opatření.
Nejčastější dotazy
Ve většině případů budou nadále fungovat skripty, které stahují soubory nebo načítají webový obsah jako text. Přidejte parametr -UseBasicParsing, abyste se vyhnuli zobrazení výzev. Skripty používající pokročilou analýzu HTML (jako jsou formuláře nebo DOM) můžou přestat reagovat nebo zobrazovat nezpracovaná data místo strukturovaných objektů. budete muset přepnout na základní parsování nebo upravit skript tak, aby obsah zpracovával jinak.
Vždy používejte parametr -UseBasicParsing s příkazem Invoke-WebRequest ve skriptech PowerShellu, aby se zajistilo bezpečné neinteraktivní spouštění.
Ano. Skripty v závislosti na starších verzích parsování musí být aktualizovány, aby se přihlásily nebo refaktorují.
Změna v PowerShellu použitelná pro standardní aktualizace i aktualizace hotpatch, což vede ke stejné změně chování.
Ano. PowerShell 7 už ve výchozím nastavení používá zabezpečenou analýzu.
S žádostí o plány podpory se obraťte na vlastníky modulů. Při migraci můžete dočasně použít výslovný souhlas s důvěryhodným obsahem.
Pokud se chcete na tuto změnu připravit a ověřit, doporučujeme:
-
Identifikujte skripty pomocí funkcí DOM.
-
Otestujte automatizaci s novým výchozím nastavením.
-
Omezte souhlas starší verze s důvěryhodnými zdroji.
-
Naplánujte refaktoring nedůvěryhodného obsahu.