ニュース
「Windows PowerShell 5.1」に「IE」要素排除のための仕様変更
「Invoke-WebRequest」に警告を追加、2025年12月のセキュリティパッチ以降の適用で
2025年12月11日 06:45
2025年12月のセキュリティパッチでは「Windows PowerShell 5.1」の「Invoke-WebRequest」コマンドレットに仕様変更があり、セキュリティプロンプト(警告)がトリガー(表示)されることがある。米Microsoftが12月9日(現地時間)、自社のサポートサイトで注意を喚起している。
「Invoke-WebRequest」は「Windows PowerShell 3.0」から導入されているコマンドレットで、HTTP/HTTPSリクエストをWebサイトへ送信し、そのレスポンスを返す。レスポンスを解析する機能も備えており、画像やリンクといった主要なHTML要素のリストを得ることも可能で、「Internet Explorer」(IE)のエンジン(MSHTML/Trident)でWebサイトのスクリプトを実行した上で「ParsedHtml」プロパティを使ってDOM構造を取得することもできた。
なお、「Invoke-WebRequest」にはLinux環境にあわせて「curl」というエイリアス(別名)が与えられているため、「curl」というコマンド名で「Invoke-WebRequest」が呼び出されていることもある。動作は少し似ているが、内容はまったくの別物だ。
さて、2025年12月のセキュリティパッチでは「Invoke-WebRequest」コマンドレットの仕様が変更されており、引数「-UseBasicParsing」を明示的に与えない(つまり「MSHTML」エンジンでスクリプトの実行とDOMの解析を行う)場合、リクエストを送信する前に警告プロンプトが表示されるようになった。ユーザーが処理を続行するかどうかを答える必要がある。「IE」は非推奨化されており、もはや利用すべきではない。
「PowerShell」で「Invoke-WebRequest」コマンドレットを単なるコンテンツのフェッチ(ファイルのダウンロードやテキストの読み取り)などに利用している場合、警告プロンプトで[はい]や[すべて続行]を選んで問題はない。
ただし、DOM操作を含む場合は安全のために[いいえ][中断]などを選ぶことが推奨される。信頼できるコンテンツ以外で[はい]や[すべて続行]を選ぶべきではない。
自動化のためにスクリプトで「Invoke-WebRequest」コマンドレットを利用している場合は、明示的に「-UseBasicParsing」引数を与えるのがもっともよい解決策だ。この引数があれば、警告プロンプトを抑止できる。「MSHTML」エンジンによるスクリプトの実行とDOMの解析も行われないため安全だ。
ただし、DOM操作を要する場合は自前(もしくは外部ライブラリ)で実装する必要がある。
なお、クロスプラットフォーム版の「PowerShell 6.0」以降はもともと「ParsedHtml」プロパティをサポートしていない。「-UseBasicParsing」引数を指定しても、動作に変更はない。

















![1冊ですべて身につくHTML & CSSとWebデザイン入門講座[第2版] 製品画像:4位](https://m.media-amazon.com/images/I/41DiWc47MYL._SL160_.jpg)





