Microsoft добавила предупреждение в PowerShell 5.1, чтобы веб-скрипты не запускались “тихо”.

После обновлений Windows, выпущенных 9 декабря 2025 года, Windows PowerShell 5.1 начал показывать предупреждение о безопасности при запуске команды Invoke-WebRequest, если она используется без специальных параметров. Система прямо сообщает, что во время разбора загруженной веб-страницы могут выполняться скрипты, и предлагает более безопасный вариант — запуск с параметром -UseBasicParsing, который исключает выполнение скриптов. Изменение описано в документе KB 5074596 и призвано защитить пользователей от вредоносного веб-контента, который мог бы сработать незаметно.
Раньше PowerShell 5.1 мог выполнять полноценный разбор HTML с помощью компонентов Internet Explorer и DOM-модели, а такой подход теоретически позволял скриптам из скачанного контента запускаться во время обработки страницы. Теперь после установки декабрьских обновлений поведение меняется: при обычном вызове Invoke-WebRequest в консоли появляется подтверждение с предупреждением о риске выполнения скриптов.
По умолчанию, если просто нажать Enter или выбрать No, операция будет отменена "из соображений безопасности", а PowerShell подскажет повторить команду с -UseBasicParsing для безопасной обработки. Если же пользователь явно выберет Yes, команда продолжит работу в старом режиме с полным HTML-разбором, то есть с тем самым рискованным поведением, от которого обновление и пытается защитить.
Отдельно Microsoft обращает внимание на различие между интерактивным использованием и автоматизацией. В интерактивной сессии появившееся подтверждение — это просто лишний шаг для пользователя. Но в сценариях без ввода, например в запланированных задачах или CI-пайплайнах, такой запрос может повесить выполнение скрипта в ожидании ответа. Поэтому для автоматизации рекомендуется заранее прописывать безопасный параметр -UseBasicParsing во всех вызовах Invoke-WebRequest, чтобы подтверждение не появлялось и выполнение не прерывалось.
В большинстве случаев, по описанию документа, ничего менять не придется: если сценарий просто скачивает содержимое или работает с ответом как с текстом или данными, он продолжит выполняться. Проблемы вероятнее у тех, кто опирался на "умный" HTML-разбор, формы и DOM-возможности: такие сценарии могут зависнуть из-за запроса подтверждения или начать возвращать не те структурированные объекты, к которым они привыкли.
В качестве дальнейших шагов предлагается либо остаться на новом безопасном поведении и использовать -UseBasicParsing, либо переработать скрипты так, чтобы они не полагались на рискованный разбор веб-страниц и не пытались обрабатывать потенциально недоверенный контент. Для редких доверенных случаев оставлена возможность вручную соглашаться на старое поведение, но подчеркивается, что для неинтерактивной автоматизации механизма "автосогласия" не предусмотрено и полагаться на это не стоит.