Si applica a
Win 10 Ent LTSB 2016 Win 10 Ent LTSC 2019 Windows 10 IoT Enterprise LTSC 2021 Windows 10, version 22H2, all editions Windows 11 Home and Pro, version 22H2 Windows 11 Enterprise Multi-Session, version 22H2 Windows 11 Enterprise and Education, version 22H2 Windows 11 IoT Enterprise, version 22H2 Windows 11 SE, version 23H2 Windows 11 Home and Pro, version 23H2 Windows 11 Enterprise and Education, version 23H2 Windows 11 Enterprise Multi-Session, version 23H2 Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows Server 2008 Premium Assurance Windows Server 2008 R2 Premium Assurance Windows Server 2012 ESU Windows Server 2012 R2 ESU Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server 2025

Data di pubblicazione originale: 9 dicembre 2025

ID KB: 5074596

Riassunto

Windows PowerShell 5.1 ora visualizza un prompt di conferma della sicurezza quando si utilizza il comando Invoke-WebRequest per recuperare pagine Web senza parametri speciali. Questo prompt avvisa che gli script nella pagina potrebbero essere eseguiti durante l'analisi e consiglia di usare il parametro safer -UseBasicParsing per evitare l'esecuzione di script. Gli utenti devono scegliere di continuare o annullare l'operazione. Questa modifica contribuisce a proteggere il contenuto Web dannoso richiedendo il consenso dell'utente prima di azioni potenzialmente rischiose.

Questa modifica influisce principalmente sugli ambienti aziendali o gestiti dall'IT in cui gli script di PowerShell vengono usati per l'automazione e il recupero dei contenuti Web. Persone l'uso di dispositivi nelle impostazioni personali o domestiche in genere non è necessario eseguire alcuna azione, poiché questi scenari non sono comuni all'esterno delle distribuzioni gestite dall'IT.

Cosa è cambiato?

  • Comportamento precedente

    • Analisi DOM (Full Document Object Model) con componenti di Internet Explorer (HTMLDocument Interface (mshtml)), che possono eseguire script dal contenuto scaricato.

  • Nuovo comportamento

    • Richiesta di conferma della sicurezza: Dopo l'installazione degli aggiornamenti di Windows rilasciati dopo il 9 dicembre 2025 o dopo il 9 dicembre 2025, l'esecuzione del comando Invoke-WebRequest (noto anche come curl) in PowerShell 5.1 attiverà un prompt di sicurezza (quando non viene usato alcun parametro speciale). Il prompt viene visualizzato nella console di PowerShell con un avviso relativo al rischio di esecuzione scriptQuesto significa che PowerShell sta posizionando il mouse per avvisarti che, senza precauzioni, il contenuto dello script della pagina Web potrebbe essere eseguito nel sistema durante l'elaborazione. Per impostazione predefinita, se si preme INVIO (o si sceglie No), l'operazione verrà annullata per motivi di sicurezza. PowerShell mostrerà un messaggio che indica che è stato annullato a causa di problemi di sicurezza e suggerisce di eseguire nuovamente il comando usando il parametro -UseBasicParsing per l'elaborazione sicura. Se si sceglie , PowerShell continuerà ad analizzare la pagina usando il metodo precedente (analisi HTML completa), ovvero caricherà il contenuto e gli eventuali script incorporati come prima. Essenzialmente, scegliere significa accettare il rischio e consentire l'esecuzione del comando come in precedenza, mentre scegliere No (impostazione predefinita) interrompe l'azione di protezione.

    • Confronto tra utilizzo interattivo e script: L'introduzione di questa richiesta influisce principalmente sull'utilizzo interattivo. Nelle sessioni interattive, vedrai l'avviso e dovrai rispondere. Per gli script automatizzati (scenari non interattivi come le attività pianificate o le pipeline di ci), questa richiesta potrebbe causare il blocco dello script in attesa di input. Per evitarlo, è consigliabile aggiornare tali script per usare in modo esplicito i parametri di sicurezza (vedere di seguito), verificando che non richiedano la conferma manuale.

Agire

La maggior parte degli script e dei comandi di PowerShell che usano il comando Invoke-WebRequest continuerà a funzionare con poche modifiche o nessuna modifica. Ad esempio, gli script che scaricano solo contenuto o usano il corpo della risposta come testo o dati non sono interessati e non richiedono modifiche. 

Se si hanno script interessati da questa modifica, usare uno degli approcci seguenti.

Non è necessaria alcuna azione se l'uso tipico del comando Invoke-WebRequest consiste nel recuperare il contenuto, ad esempio il download di file o la lettura di testo statico, e non ci si basa sull'interazione avanzata del sito o sull'analisi DOM HTML. Il nuovo comportamento predefinito è più sicuro: gli script incorporati nel contenuto Web non verranno eseguiti senza l'autorizzazione dell'utente e questa è la configurazione consigliata per la maggior parte degli scenari. 

Per l'uso interattivo, basta rispondere No al nuovo prompt di sicurezza (o premere INVIO per accettare il valore predefinito) ed eseguire nuovamente il comando con il parametro -UseBasicParsing per recuperare in modo sicuro il contenuto. In questo modo si eviterà l'esecuzione di codice script nella pagina di recupero. Se si recuperano spesso contenuti Web in modo interattivo, è consigliabile usare il parametro -UseBasicParsing per impostazione predefinita nei comandi per ignorare completamente la richiesta e garantire la massima sicurezza. 

Per gli script automatizzati o le attività pianificate, aggiornarli per includere il parametro -UseBasicParsing nelle chiamate Invoke-WebRequest. In questo modo il comportamento sicuro viene preselezionato in modo che la richiesta non venga visualizzata e lo script continui a essere eseguito senza interruzioni. In questo modo, l'automazione viene eseguita senza problemi dopo l'aggiornamento, sfruttando comunque il miglioramento della sicurezza. 

Per gli script o l'automazione che gestiscono contenuto Web pubblico o non attendibile e richiedono l'elaborazione di moduli o strutture HTML, è consigliabile eseguire il refactoring o aggiornarli per una sicurezza a lungo termine. Invece di affidarsi a PowerShell per analizzare ed eseguire script di pagine Web potenzialmente pericolosi, è possibile: 

  • Usare metodi o raccolte di analisi alternative, ad esempio considerare il contenuto della pagina Web come testo normale o XML, usando librerie di analisi regex o XML/HTML che non eseguono script.

  • Modernizza il tuo approccio alle interazioni Web, ad esempio usando la versione più recente di PowerShell Core (versione 7.x o successiva) che non dipende dal motore di Internet Explorer ed evita l'esecuzione di script oppure usando strumenti di scraping Web specializzati che gestiscono il contenuto in modo più sicuro.

  • Limita la dipendenza dalle funzionalità specifiche di Internet Explorer, poiché Internet Explorer è deprecato. Pianificare la riscrizione di parti degli script che dipendono da tali caratteristiche in modo che possano lavorare in un ambiente in cui il contenuto Web viene gestito in modo sicuro.

  • L'obiettivo con il refactoring è raggiungere le funzionalità necessarie senza esporsi ai rischi per la sicurezza, adottando così le impostazioni predefinite più sicure introdotte da questa modifica.

Se è necessario usare i comandi Invoke-WebRequest con funzionalità di analisi HTML complete, ad esempio l'interazione con i campi modulo o il ritaglio di dati strutturati, e si considera attendibile l'origine del contenuto Web, è comunque possibile procedere con il comportamento di analisi legacy caso per caso. Nelle sessioni interattive, questo significa semplicemente scegliere al prompt di conferma per consentire il continuare dell'operazione. Ogni volta che si esegue questa operazione, si riceverà un promemoria del rischio per la sicurezza. Procedere senza il parametro -UseBasicParsing deve essere limitato agli scenari in cui il contenuto Web è completamente attendibile (ad esempio, applicazioni Web interne sotto il controllo dell'utente o siti Web sicuri noti). 

Importante: Questo approccio non è consigliato per gli script in esecuzione su contenuto Web pubblico o non attendibile, perché reintroduisce il rischio di esecuzione di script silenziosi che questo aggiornamento ha lo scopo di mitigare. Inoltre, per l'automazione non interattiva, non esiste un meccanismo incorporato per acconsentire automaticamente al prompt, quindi non è consigliabile affidarsi all'analisi completa negli script (oltre ad essere rischiosa). Usare questa opzione con moderazione e solo come misura temporanea.

Domande frequenti​​​​​​​

Nella maggior parte dei casi, gli script che scaricano file o recuperano contenuto Web come testo continueranno a funzionare; aggiungere il parametro -UseBasicParsing per evitare richieste di conferma. Gli script che usano l'analisi HTML avanzata (come moduli o DOM) possono bloccarsi o generare dati non elaborati invece di oggetti strutturati; sarà necessario passare all'analisi di base o modificare lo script per gestire il contenuto in modo diverso.

Usare sempre il parametro -UseBasicParsing con il comando Invoke-WebRequest negli script di PowerShell per garantire l'esecuzione sicura e non interattiva.  

Sì. Gli script che dipendono dall'analisi legacy devono essere aggiornati per fornire il consenso esplicito o eseguire di nuovo il refactoring.

La modifica in PowerShell applicabile sia agli aggiornamenti standard che agli aggiornamenti di hotpatch, con conseguente modifica del comportamento.

Sì. PowerShell 7 usa già l'analisi sicura per impostazione predefinita.

Contattare i proprietari dei moduli per i piani di supporto. Usare temporaneamente il consenso esplicito per il contenuto attendibile durante la migrazione.

Per preparare e convalidare la modifica, è consigliabile: 

  • Identificare gli script che usano le funzionalità DOM.

  • Testare l'automazione con la nuova impostazione predefinita.

  • Limitare il consenso esplicito legacy alle origini attendibili.

  • Pianificare il refactoring per il contenuto non attendibile.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.