
Microsoft は、Web コンテンツをダウンロードするために Invoke-WebRequest コマンドレットを使用するスクリプトを実行する際、Windows PowerShell が警告を表示するようになったと発表しました。これは、潜在的に危険なコードが実行されるのを防ぐことを目的としています。
Microsoft の説明によると、これは高深刻度の PowerShell リモートコード実行の脆弱性 (CVE-2025-54100)を軽減するもので、主に PowerShell スクリプトを自動化に利用しているエンタープライズや IT 管理環境に影響します。これは、そうした環境以外では PowerShell スクリプトがそれほど一般的に使用されていないためです。
この警告は、Windows 10 および Windows 11 システムに既定でインストールされている PowerShell バージョンである Windows PowerShell 5.1 に追加されており、PowerShell 7 で利用可能な安全な Web 解析プロセスと同等の仕組みを提供するよう設計されています。
PowerShell は、「Invoke-WebRequest」コマンドレットを使用してダウンロードした Web ページに含まれるスクリプトが、対策を講じない場合、システム上で実行される可能性があることを警告します。既定では、Enter キーを押すか「No」を選択すると操作はキャンセルされ、PowerShell はより安全な処理のために「-UseBasicParsing」パラメーターを付けてコマンドを再実行するよう提案します。
「Yes」を選択すると、PowerShell は従来の方法(完全な HTML 解析)でページを解析し、これまでどおりコンテンツと埋め込みスクリプトの読み込みを許可します。要するに、「Yes」を選択することはリスクを受け入れることを意味し、「No」を選択するとシステムを保護するために処理が停止されます。
「Windows PowerShell 5.1 は、特別なパラメーターを指定せずに Invoke-WebRequest コマンドを使用して Web ページを取得する際に、セキュリティ確認プロンプトを表示するようになりました」と、Microsoft は火曜日のアドバイザリで説明しています。
「このプロンプトは、ページ内のスクリプトが解析中に実行される可能性があることを警告し、スクリプトの実行を回避するために、より安全な -UseBasicParsing パラメーターの使用を推奨します。ユーザーは処理を続行するかキャンセルするかを選択する必要があります。」
KB5074204 更新プログラムをインストールすると、IT 管理者には次のようなスクリプトコード実行リスクを警告する確認プロンプトが表示されます。
Security Warning: Script Execution Risk
Invoke-WebRequest parses the content of the web page. Script code in the web page might be run when the page is parsed.
RECOMMENDED ACTION:
Use the -UseBasicParsing switch to avoid script code execution.
Do you want to continue?
For additional details, see [KB5074596: PowerShell 5.1: Preventing script execution from web content](https://support.microsoft.com/help/5072034).
自動化スクリプトが手動での確認待ちで停止してしまうのを避けるため、管理者はスクリプトを更新し、明示的に安全な UseBasicParsing パラメーターを使用することが推奨されています。
また、PowerShell では「curl」コマンドが Invoke-WebRequest コマンドレットへのエイリアスになっているため、curl コマンドを呼び出すスクリプトを実行した場合にも、同様の新しい警告が表示される点にも注意が必要です。
「Invoke-WebRequest コマンドを使用するほとんどの PowerShell スクリプトやコマンドは、ほとんど、あるいはまったく変更を加えなくても引き続き動作します」と Microsoft は述べています。
「たとえば、コンテンツをダウンロードするだけのスクリプトや、レスポンスボディをテキストまたはデータとして扱うだけのスクリプトは影響を受けず、変更は不要です。」