Применяется к
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

Исходная дата публикации: 9 декабря 2025 г.

Идентификатор базы знаний: 5074596

Сводка

Windows PowerShell 5.1 теперь отображает запрос подтверждения безопасности при использовании команды Invoke-WebRequest для получения веб-страниц без специальных параметров. Этот запрос предупреждает, что скрипты на странице могут выполняться во время синтаксического анализа, и рекомендует использовать безопасный параметр -UseBasicParsing, чтобы избежать выполнения скриптов. Пользователи должны продолжить или отменить операцию. Это изменение помогает защититься от вредоносного веб-содержимого, требуя согласия пользователя перед потенциально опасными действиями.

Это изменение в первую очередь влияет на корпоративные или управляемые ИТ-среды, в которых сценарии PowerShell используются для автоматизации и получения веб-содержимого. Люди, использующих устройства в личных или домашних параметрах, обычно не нужно предпринимать никаких действий, так как эти сценарии редко встречаются за пределами управляемых ИТ-развертываний.

Что изменилось?

  • Предыдущее поведение

    • Синтаксический анализ полной объектной модели документа (DOM) с помощью компонентов Internet Обозреватель (интерфейс HTMLDocument (mshtml)), которые могут выполнять скрипты из скачавшегося содержимого.

  • Новое поведение

    • Запрос на подтверждение безопасности: После установки обновлений Windows, выпущенных 9 декабря 2025 г. или позже, при выполнении команды Invoke-WebRequest (также известной как curl) в PowerShell 5.1 запускается запрос безопасности (если специальный параметр не используется). В консоли PowerShell появится запрос с предупреждением о риске выполнения скриптаЭто означает, что PowerShell приостанавливает, чтобы предупредить вас о том, что без мер предосторожности содержимое скрипта веб-страницы может выполняться в вашей системе при его обработке. По умолчанию, если нажать клавишу ВВОД (или выбрать Нет), операция будет отменена в целях безопасности. PowerShell отобразит сообщение о том, что он был отменен из-за проблем безопасности, и предложит повторно выполнить команду с помощью параметра -UseBasicParsing для безопасной обработки. Если выбрать да, PowerShell продолжит анализ страницы с помощью старого метода (полный анализ HTML), то есть будет загружать содержимое и все внедренные скрипты, как раньше. По сути, если выбрать Да, вы принимаете риск и разрешаете команде выполняться так, как она делала раньше, а при выборе параметра Нет (по умолчанию) действие будет остановлено, чтобы защитить вас.

    • Интерактивное и скриптованное использование: Введение этой подсказки в первую очередь влияет на интерактивное использование. В интерактивных сеансах вы увидите предупреждение и вам потребуется ответить. Для автоматизированных сценариев (неинтерактивных сценариев, таких как запланированные задачи или конвейеры CI), этот запрос может привести к зависаю скрипту в ожидании ввода. Чтобы избежать этого, рекомендуется обновить такие скрипты для явного использования безопасных параметров (см. ниже), гарантируя, что они не требуют подтверждения вручную.

Принять меры

Большинство сценариев и команд PowerShell, использующих команду Invoke-WebRequest, по-прежнему будут работать практически без изменений. Например, скрипты, которые загружают только содержимое или работают с текстом ответа в виде текста или данных, не затрагиваются и не требуют никаких изменений. 

Если у вас есть скрипты, на которые влияет это изменение, используйте один из следующих подходов.

Никаких действий не требуется, если обычно команда Invoke-WebRequest используется для получения содержимого (например, скачивания файлов или чтения статического текста), и вы не полагаетесь на расширенное взаимодействие с сайтом или синтаксический анализ DOM HTML. Новое поведение по умолчанию является более безопасным — скрипты, внедренные в веб-содержимое, не будут выполняться без вашего разрешения, и это рекомендуемая конфигурация для большинства сценариев. 

Для интерактивного использования просто ответьте "Нет" на новую строку безопасности (или нажмите клавишу ВВОД , чтобы принять значение по умолчанию) и повторно выполните команду с параметром -UseBasicParsing, чтобы безопасно получить содержимое. Это позволит избежать выполнения любого кода скрипта на извлекаемой странице. Если вы часто извлекаете веб-содержимое в интерактивном режиме, рассмотрите возможность использования параметра -UseBasicParsing по умолчанию в командах, чтобы полностью пропустить запрос и обеспечить максимальную безопасность. 

Для автоматизированных скриптов или запланированных задач обновите их, чтобы включить параметр -UseBasicParsing в вызовах Invoke-WebRequest. При этом предварительно выбирается безопасное поведение, чтобы запрос не отображался, а скрипт продолжал выполняться без прерывания. Таким образом вы гарантируете, что автоматизация будет выполняться без проблем после обновления, используя при этом преимущества повышенной безопасности. 

Для сценариев или автоматизации, которые обрабатывают ненадежный или общедоступный веб-контент и требуют обработки структур или форм HTML, рассмотрите возможность их рефакторинга или обновления для долгосрочной безопасности. Вместо того, чтобы использовать PowerShell для анализа и запуска потенциально опасных сценариев веб-страниц, вы можете: 

  • Используйте альтернативные методы или библиотеки синтаксического анализа (например, обрабатывать содержимое веб-страницы как обычный текст или XML, используя регулярные или библиотеки синтаксического анализа XML/HTML, которые не выполняют скрипты).

  • Модернизируйте подход к веб-взаимодействию, возможно, с помощью более новой версии PowerShell Core (версии 7.x или более поздней), которая не зависит от подсистемы интернет-Обозреватель и позволяет избежать выполнения скриптов, или с помощью специализированных средств веб-очистки, которые более безопасно обрабатывают содержимое.

  • Ограничьте зависимость от функций, относящихся к Интернету Обозреватель, так как Обозреватель Интернета не рекомендуется использовать. Запланируйте повторное написание частей скриптов, которые зависят от этих функций, чтобы они могли работать в среде, где веб-содержимое обрабатывается безопасно.

  • Цель рефакторинга заключается в том, чтобы реализовать необходимые функциональные возможности, не подвергая себя риску безопасности, тем самым охватывая более безопасные значения по умолчанию, введенные этим изменением.

Если у вас есть конкретная необходимость использовать команды Invoke-WebRequest с полными возможностями синтаксического анализа HTML (например, взаимодействие с полями формы или выскабливание структурированных данных) и вы доверяете источнику веб-содержимого, вы по-прежнему можете перейти к устаревшему поведению синтаксического анализа в индивидуальном порядке. В интерактивных сеансах это просто означает, что в запросе подтверждения нужно выбрать Да, чтобы продолжить операцию. Каждый раз вы получите напоминание о риске безопасности. Без параметра -UseBasicParsing следует ограничиться сценариями, в которых вы полностью доверяете веб-содержимому (например, внутренним веб-приложениям под вашим контролем или известным безопасным веб-сайтам). 

Важно: Этот подход не рекомендуется использовать для сценариев, выполняемых с ненадежным или общедоступным веб-содержимым, так как он повторно внося риск автоматического выполнения скриптов, который это обновление предназначено для снижения. Кроме того, для неинтерактивной автоматизации отсутствует встроенный механизм для автоматического предоставления согласия на запрос, поэтому полагаться на полный анализ в сценариях не рекомендуется (в дополнение к рискованному). Используйте этот параметр экономно и только в качестве временной меры.

Вопросы и ответы​​​​​​​

В большинстве случаев скрипты, которые загружают файлы или извлекает веб-содержимое в виде текста, по-прежнему будут работать; добавьте параметр -UseBasicParsing, чтобы избежать запросов. Скрипты, использующие расширенный анализ HTML (например, формы или DOM), могут зависать или выводить необработанные данные вместо структурированных объектов; Вам потребуется переключиться на базовый анализ или изменить сценарий, чтобы обрабатывать содержимое по-другому.

Всегда используйте параметр -UseBasicParsing с командой Invoke-WebRequest в сценариях PowerShell, чтобы обеспечить безопасное и неинтерактивное выполнение.  

Да. Скрипты в зависимости от устаревшего синтаксического анализа должны быть обновлены для включения или рефакторинга.

Изменение в PowerShell, применимое как к стандартным обновлениям, так и к обновлениям с горячим исправлением, что приводит к тому же изменению поведения.

Да. PowerShell 7 уже использует безопасный синтаксический анализ по умолчанию.

Обратитесь к владельцам модулей для получения планов поддержки. Используйте временное согласие на использование доверенного содержимого во время миграции.

Чтобы подготовиться к этому изменению и проверить его, рекомендуется: 

  • Определение сценариев с помощью функций DOM.

  • Протестируйте автоматизацию с новым значением по умолчанию.

  • Ограничьте устаревшее согласие доверенными источниками.

  • Планируйте рефакторинг для ненадежного содержимого.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.