Aplica-se 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 de publicação original: 9 de dezembro de 2025

ID da BDC: 5074596

Este artigo descreve uma alteração que afeta principalmente ambientes empresariais ou geridos por TI em que os scripts do PowerShell são utilizados para automatização e obtenção de conteúdo Web. Pessoas a utilização de dispositivos em definições pessoais ou domésticas geralmente não precisam de efetuar qualquer ação, uma vez que estes cenários são invulgares fora dos ambientes geridos por TI.

Alterar data

Alterar descrição

20 de dezembro de 2025

  • Foi adicionado o "Aviso de Segurança" à secção "Resumo".

  • Foi adicionado o parágrafo seguinte à secção "Resumo" para maior clareza: O comando Invoke-WebRequest do PowerShell faz um pedido HTTP ou HTTPS a um servidor Web e devolve os resultados. Este artigo documenta uma alteração de proteção em que Windows PowerShell 5.1 apresenta intencionalmente um pedido de confirmação de segurança ao utilizar o comando Invoke-WebRequest para obter páginas Web sem parâmetros especiais. Este comportamento ocorre depois de os clientes e servidores Windows suportados terem instalado a instalação do Windows Atualizações lançado em e depois de 9 de dezembro de 2025. Para obter mais informações, consulte CVE-2025-54100.

  • Foram adicionados os seguintes pontos de lista a "Para scripts automatizados ou tarefas agendadas" na Opção 1 da secção "Tomar medidas".

    • Para scripts que são executados com a opção sem perfil: se o script tiver muitas ocorrências das chamadas de Invoke-WebRequest, declare $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true na parte superior do script.

    • Quando Invoke-WebRequest é utilizado com o parâmetro -UseBasicParsing, não é possível analisar o Modelo de Objeto de Documento Completo (DOM) com componentes do Internet Explorer (HTMLDocument Interface (mshtml)).

  • Foi adicionado o seguinte ponto de marca de lista à marca de lista "Modernizar a sua abordagem às interações web" da Opção 2 na secção "Tomar medidas".

    • Invoke-Webrequest no PowerShell Core (versão 7.x ou posterior) não suporta a análise do DOM com componentes do Internet Explorer. A sua análise predefinida irá obter em segurança o conteúdo sem execução do script.

Resumo

Windows PowerShell 5.1 apresenta agora um pedido de confirmação de segurança ao utilizar o comando Invoke-WebRequest para obter páginas Web sem parâmetros especiais.

Aviso de Segurança: O Risco de Execução de Scripts Invoke-WebRequest analisa o conteúdo da página Web. O código de script na página Web pode ser executado quando a página é analisada.

AÇÃO RECOMENDADA: utilize o comutador -UseBasicParsing para evitar a execução do código do script.

Pretende continuar?

Este pedido avisa que os scripts na página podem ser executados durante a análise e aconselha a utilizar o parâmetro -UseBasicParsing para evitar qualquer execução do script. Os utilizadores têm de optar por continuar ou cancelar a operação. Esta alteração ajuda a proteger contra conteúdo Web malicioso ao exigir o consentimento do utilizador antes de ações potencialmente arriscadas.

O comando Invoke-WebRequest do PowerShell faz um pedido HTTP ou HTTPS a um servidor Web e devolve os resultados. Este artigo documenta uma alteração de proteção em que Windows PowerShell 5.1 apresenta intencionalmente um pedido de confirmação de segurança ao utilizar o comando Invoke-WebRequest para obter páginas Web sem parâmetros especiais. Este comportamento ocorre depois de os clientes e servidores Windows suportados terem instalado o Windows Atualizações lançado em e depois de 9 de dezembro de 2025. Para obter mais informações, consulte CVE-2025-54100.

O que mudou?

  • Comportamento anterior

    • Análise completa do Modelo de Objeto de Documento (DOM) com componentes do Internet Explorer (HTMLDocument Interface (mshtml)), que podem executar scripts a partir de conteúdos transferidos.

  • Novo comportamento

    • Pedido de Confirmação de Segurança: Depois de instalar as atualizações do Windows lançadas em ou depois de 9 de dezembro de 2025, executar o comando Invoke-WebRequest (também conhecido como curl) no PowerShell 5.1 irá acionar uma linha de segurança (quando não for utilizado nenhum parâmetro especial). O pedido é apresentado na consola do PowerShell com um aviso sobre o Risco de Execução de ScriptsIsto significa que o PowerShell está em pausa para avisá-lo de que, sem precauções, o conteúdo do script da página Web pode ser executado no seu sistema quando for processado. Por predefinição, se premir Enter (ou selecionar Não), a operação será cancelada por motivos de segurança. O PowerShell mostrará uma mensagem a indicar que foi cancelado devido a questões de segurança e sugere que execute novamente o comando com o parâmetro -UseBasicParsing para processamento seguro. Se escolher Sim, o PowerShell irá analisar a página com o método mais antigo (análise de HTML completa), o que significa que irá carregar o conteúdo e quaisquer scripts incorporados como costumava fazer. Essencialmente, escolher Sim significa que está a aceitar o risco e a permitir que o comando seja executado como antes, ao selecionar Não (a predefinição) interrompe a ação para protegê-lo.

    • Utilização Interativa vs. Com Script: A introdução deste pedido afeta principalmente a utilização interativa. Nas sessões interativas, verá o aviso e terá de responder. Para scripts automatizados (cenários não interativos, como tarefas agendadas ou pipelines de CI), este pedido pode fazer com que o script fique bloqueado enquanto aguarda pela entrada. Para evitar isso, recomendamos que atualize esses scripts para utilizar explicitamente parâmetros seguros (ver abaixo), garantindo que não necessitam de confirmação manual.

Tomar medidas

A maioria dos scripts e comandos do PowerShell que utilizam o comando Invoke-WebRequest continuará a funcionar com pouca ou nenhuma modificação. Por exemplo, os scripts que apenas transferem conteúdo ou funcionam com o corpo da resposta como texto ou dados não são afetados e não requerem alterações. 

Se tiver scripts afetados por esta alteração, utilize uma das seguintes abordagens.

Para obter conteúdo, não é necessária qualquer ação se a utilização típica do comando Invoke-WebRequest for obter conteúdo (como transferir ficheiros ou ler texto estático) e não depender da interação avançada do site ou da análise DOM HTML. O novo comportamento predefinido é mais seguro — os scripts incorporados no conteúdo Web não serão executados sem a sua permissão — e esta é a configuração recomendada para a maioria dos cenários. 

Para utilização interativa, basta responder Não à nova linha de comandos de segurança (ou premir Enter para aceitar a predefinição) e executar novamente o comando com o parâmetro -UseBasicParsing para obter o conteúdo em segurança. Isto evitará executar qualquer código de script na página obtida. Se obter frequentemente conteúdo Web interativamente, considere utilizar o parâmetro -UseBasicParsing por predefinição nos comandos para ignorar completamente o pedido e garantir a máxima segurança. 

Para scripts automatizados ou tarefas agendadas, atualize-os para incluir o parâmetro -UseBasicParsing nas chamadasInvoke-WebRequest. Esta ação pré-seleciona o comportamento seguro para que o pedido não seja apresentado e o script continue a ser executado sem interrupções. Ao fazê-lo, garante que a automatização é executada de forma totalmente integrada após a atualização, tirando ainda partido da segurança melhorada.

  • Para scripts que são executados com a opção -NoProfile: se o script tiver muitas ocorrências das chamadas Invoke-WebRequest, declare $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true na parte superior do script.

  • Quando Invoke-WebRequest é utilizado com o parâmetro -UseBasicParsing , não é possível analisar o Modelo de Objeto de Documento Completo (DOM) com componentes do Internet Explorer (HTMLDocument Interface (mshtml)).

Para scripts ou automatização que lidam com conteúdos Web públicos ou não fidedignos e exigem o processamento de estruturas ou formulários HTML, considere refatorizá-los ou atualizá-los para segurança a longo prazo. Em vez de depender do PowerShell para analisar e executar scripts de páginas Web potencialmente perigosos, pode: 

  • Utilize métodos ou bibliotecas de análise alternativos (por exemplo, trate o conteúdo da página Web como texto simples ou XML, utilizando bibliotecas de análise regex ou XML/HTML que não executam scripts).

  • Modernizar a sua abordagem às interações web, talvez utilizando o PowerShell Core mais recente (versão 7.x ou posterior), que não depende do motor do Internet Explorer e evita a execução de scripts ou através de ferramentas de recorte web especializadas que processam conteúdos de forma mais segura. Limite a dependência de funcionalidades específicas do Internet Explorer, uma vez que o Internet Explorer foi preterido. Planeie reescrever partes dos seus scripts que dependem dessas funcionalidades para que possam funcionar num ambiente onde o conteúdo Web é processado de forma segura.

    • Invoke-WebRequest no PowerShell Core (versão 7.x ou posterior) não suporta a análise do DOM com componentes do Internet Explorer. A sua análise predefinida irá obter em segurança o conteúdo sem execução do script.

  • O objetivo da refatorização é alcançar a funcionalidade necessária sem se expor aos riscos de segurança, adotando assim as predefinições mais seguras introduzidas por esta alteração.

Se tiver uma necessidade específica de utilizar as capacidades de análise html completas do comando Invoke-WebRequest (como interagir com campos de formulário ou extrair dados estruturados) e confiar na origem do conteúdo Web, pode continuar com o comportamento de análise legado caso a caso. Em sessões interativas, isto significa simplesmente escolher Sim no pedido de confirmação para permitir que a operação continue. Receberá um lembrete do risco de segurança sempre que o fizer. Continuar sem o parâmetro -UseBasicParsing deve ser limitado a cenários em que confia totalmente no conteúdo Web (por exemplo, aplicações Web internas sob o seu controlo ou sites seguros conhecidos). 

Importante: Esta abordagem não é recomendada para scripts em execução em conteúdos Web públicos ou não fidedignos, uma vez que reintroduzi o risco de execução automática de scripts que esta atualização pretende mitigar. Além disso, para a automatização não interativa, não existe nenhum mecanismo incorporado para consentir automaticamente o pedido, pelo que não é aconselhável confiar na análise completa nos scripts (além de ser arriscado). Utilize esta opção com moderação e apenas como medida temporária.

Perguntas mais frequentes​​​​​​​

Na maioria dos casos, os scripts que transferem ficheiros ou obtêm conteúdo Web como texto continuarão a funcionar. Para evitar o pedido, adicione o parâmetro -UseBasicParsing.

 Os scripts que utilizam análise HTML avançada (como formulários ou DOM) podem bloquear ou produzir dados não processados em vez de objetos estruturados; terá de mudar para análise básica ou modificar o script para processar conteúdos de forma diferente. 

Utilize sempre o parâmetro -UseBasicParsing com o comando Invoke-WebRequest nos scripts do PowerShell para garantir uma execução segura e não interativa.  

Sim. Os scripts, dependendo da análise legada, têm de ser atualizados para optar ativamente por participar ou refatorizar.

A alteração no PowerShell é aplicável a atualizações padrão e atualizações de acesso frequente, o que resulta na mesma alteração de comportamento.

Sim. O PowerShell 7 já utiliza a análise segura por predefinição.

Contacte os proprietários dos módulos para obter planos de suporte. Utilize o opt-in temporariamente para conteúdo fidedigno durante a migração.

Para preparar e validar esta alteração, recomendamos que: 

  • Identificar scripts com funcionalidades DOM.

  • Teste a automatização com a nova predefinição.

  • Limitar o opt-in legado a origens fidedignas.

  • Planear a refatorização para conteúdo não fidedigno.

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.