应用对象
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

原始发布日期: 2025 年 12 月 9 日

KB ID:5074596

本文介绍主要影响企业或 IT 托管环境(其中 PowerShell 脚本用于自动化和 Web 内容检索)的更改。 人员在个人或家庭设置中使用设备通常不需要采取任何作,因为这些方案在 IT 托管环境之外并不常见。

更改日期

更改说明

2025 年 12 月 20 日

  • 向“摘要”部分添加了“安全警告”。

  • 为清楚起见,在“摘要”部分添加了以下段落: PowerShell 的 Invoke-WebRequest 命令向 Web 服务器发出 HTTP 或 HTTPS 请求,并返回结果。 本文介绍了一个强化更改,其中 Windows PowerShell 5.1 在使用 Invoke-WebRequest 命令提取没有特殊参数的网页时特意显示安全确认提示。 在 2025 年 12 月 9 日和之后发布的 Windows 汇报,受支持的 Windows 客户端和服务器安装 Windows 后,会出现此行为。 有关详细信息,请参阅 CVE-2025-54100。

  • 在“采取作”部分的选项 1 中,向“自动脚本或计划任务”添加了以下项目符号。

    • 对于使用 no-profile 选项运行的脚本:如果脚本多次发生 Invoke-WebRequest 调用,请在脚本顶部声明 $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true

    • Invoke-WebRequest-UseBasicParsing 参数一起使用时,不能使用 Internet Explorer 组件 (DOM) 完整文档对象模型 (HTMLDocument 接口 (mshtml) ) 进行分析。

  • 在“采取作”部分中的选项 2 的“实现 Web 交互方法的现代化”项目符号点中添加了以下项目符号。

    • Powershell Core (7.x 或更高版本中的 Invoke-Webrequest) 不支持使用 Internet Explorer 组件进行 DOM 分析。 其默认分析将安全地检索内容,而无需执行脚本。

摘要

Windows PowerShell 5.1 现在在使用 Invoke-WebRequest 命令提取没有特殊参数的网页时显示安全确认提示。

安全警告: 脚本执行风险 Invoke-WebRequest 分析网页的内容。 分析页面时,可能会运行网页中的脚本代码。

建议的作:使用 -UseBasicParsing 开关来避免脚本代码执行。

是否继续?

此提示警告页面中的脚本可能在分析期间运行,并建议使用 -UseBasicParsing 参数来避免执行任何脚本。 用户必须选择继续或取消作。 此更改通过在潜在风险作之前要求用户同意来帮助防范恶意 Web 内容。

PowerShell 的 Invoke-WebRequest 命令向 Web 服务器发出 HTTP 或 HTTPS 请求并返回结果。 本文介绍了一个强化更改,其中 Windows PowerShell 5.1 在使用 Invoke-WebRequest 命令提取没有特殊参数的网页时特意显示安全确认提示。 在受支持的 Windows 客户端和服务器已安装 Windows 汇报 2025 年 12 月 9 日及之后发布后,会出现此行为。 有关详细信息,请参阅 CVE-2025-54100

有何变化?

  • 以前的行为

    • 完整的文档对象模型 (DOM) 使用 Internet Explorer 组件 (HTMLDocument Interface (mshtml) ) 进行分析,后者可以从下载的内容执行脚本。

  • 新行为

    • 安全确认提示: 安装 2025 年 12 月 9 日或之后发布的 Windows 更新后,在 PowerShell 5.1 中运行 Invoke-WebRequest 命令 (也称为 curl) ,在没有使用特殊参数) 时,将触发安全提示 (。 提示显示在 PowerShell 控制台中,并显示有关 脚本执行风险的警告。 这意味着 PowerShell 会暂停警告你,在未采取预防措施的情况下,网页脚本内容可能会在处理时在系统上执行。 默认情况下,如果按 Enter (或选择“ ) ”,作将被取消,以确保安全。 PowerShell 将显示一条消息,指出由于安全问题而取消,并建议使用 -UseBasicParsing 参数重新运行命令进行安全处理。 如果选择“ 是”,PowerShell 将继续使用旧方法分析页面, (完整的 HTML 分析) ,这意味着它将像以前一样加载内容和任何嵌入的脚本。 从本质上讲,选择“ ”意味着你接受风险并允许命令像以前一样运行,而选择“ ” (默认) 将停止作以保护你。

    • 交互式与脚本使用: 引入此提示主要影响交互式使用。 在交互式会话中,你将看到警告,并且必须做出响应。 对于 (非交互方案(例如计划任务或 CI 管道) )的自动化脚本,此提示可能会导致脚本在等待输入时挂起。 为避免这种情况,我们建议更新此类脚本以显式使用安全参数 (请参阅以下) ,确保它们不需要手动确认。

采取操作

大多数使用 Invoke-WebRequest 命令的 PowerShell 脚本和命令将继续工作,几乎无需修改或无需修改。 例如,仅下载内容或将响应正文用作文本或数据的脚本不受影响,且无需更改。 

如果有受此更改影响的脚本,请使用以下方法之一。

对于提取内容,如果 Invoke-WebRequest 命令的典型用法是提取内容 ((如下载文件或阅读静态文本) 并且不依赖于高级网站交互或 HTML DOM 分析),则无需执行任何作。 新的默认行为更安全,未经你的许可,Web 内容中嵌入的脚本将不会运行,这是大多数方案的建议配置。 

若要进行交互式使用,只需 (响应 新的安全提示“否”或按 Enter 接受默认) 并使用 -UseBasicParsing 参数重新运行命令即可安全地检索内容。 这将避免在提取的页面中执行任何脚本代码。 如果经常以交互方式提取 Web 内容,请考虑在命令中默认使用 -UseBasicParsing 参数,以完全跳过提示并确保最大安全性。 

对于自动脚本或计划任务,请更新它们以在 Invoke-WebRequest 调用上包括 -UseBasicParsing 参数。 这会预先选择安全行为,以便不会显示提示,并且脚本继续运行而不会中断。 通过执行此作,可确保自动化在更新后无缝运行,同时仍利用改进的安全性。

  • 对于使用 -NoProfile 选项运行的脚本:如果脚本多次发生 Invoke-WebRequest 调用,请在脚本顶部声明 $PSDefaultParameterValues['Invoke-WebRequest:UseBasicParsing'] = $true

  • Invoke-WebRequest-UseBasicParsing 参数一起使用时,不能使用 Internet Explorer 组件 (DOM) 完整文档对象模型 (HTMLDocument 接口 (mshtml) ) 进行分析。

对于处理不受信任的或公共 Web 内容并需要处理 HTML 结构或表单的脚本或自动化,请考虑 重构 或更新它们,以确保长期安全。 你可以:可以:而不是依赖 PowerShell 来分析和运行潜在危险的网页脚本: 

  • 使用替代分析方法或库 (例如,使用不执行脚本) 的正则表达式或 XML/HTML 分析库将网页内容视为纯文本或 XML。

  • 实现 Web 交互方法的现代化,可能通过使用较新的 PowerShell Core (版本 7.x 或更高版本) 它不依赖于 Internet Explorer 的引擎并避免运行脚本,或者使用更安全地处理内容的专用 Web 抓取工具。 限制对特定于 Internet Explorer 的功能的依赖,因为 Internet Explorer 已弃用。 计划重写依赖于这些功能的部分脚本,以便在安全处理 Web 内容的环境中工作。

    • PowerShell Core (7.x 或更高版本中的 Invoke-WebRequest) 不支持使用 Internet Explorer 组件进行 DOM 分析。 其默认分析将安全地检索内容,而无需执行脚本。

  • 重构的目标是在不让自己面临安全风险的情况下实现所需的功能,从而采用此更改引入的更安全的默认值。

如果特别需要使用 Invoke-WebRequest 命令的完整 HTML 分析功能 (例如与表单字段交互或抓取结构化数据) 并且你信任 Web 内容的源,则仍可逐个继续执行旧分析行为。 在交互式会话中,这仅意味着在确认提示下选择 “是”以允许作继续。 每次执行此作时,你都会收到有关安全风险的提醒。 在没有 -UseBasicParsing 参数的情况下继续作应仅限于完全信任 Web 内容 (例如,控制下的内部 Web 应用程序或已知安全网站) 。 

重要: 对于针对不受信任的或公共 Web 内容运行的脚本,不建议使用此方法,因为它会重新引入此更新旨在缓解的静默脚本执行风险。 此外,对于非交互式自动化,没有内置机制来自动同意提示,因此,除了) 存在风险外,不建议 (依赖脚本中的完全分析。 请谨慎使用此选项,并且仅用作临时措施。

常见问题​​​​​​​

在大多数情况下,下载文件或将 Web 内容提取为文本的脚本仍将有效。 若要避免出现提示,请添加 -UseBasicParsing 参数。

 使用高级 HTML 分析 ((如窗体或 DOM) )的脚本可能会挂起或输出原始数据,而不是结构化对象;你需要切换到基本分析或修改脚本以不同方式处理内容。 

始终将 -UseBasicParsing 参数与 PowerShell 脚本中的 Invoke-WebRequest 命令结合使用,以确保安全、非交互式执行。  

是的。 必须更新依赖于旧分析的脚本才能选择加入或重构。

PowerShell 中的更改适用于标准更新和热补丁更新,导致相同的行为更改。

是的。 默认情况下,PowerShell 7 已使用安全分析。

请联系模块所有者获取支持计划。 迁移时暂时对受信任的内容使用选择加入。

若要准备和验证此更改,我们建议你: 

  • 使用 DOM 功能识别脚本。

  • 使用新的默认值测试自动化。

  • 将旧版选择加入限制为受信任的源。

  • 规划不受信任的内容的重构。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。