[Invoke-WebRequest]を利用したときにエラーが出てきて、解決に苦戦しましたのでその解決策をまとめてみました。
本記事で取り扱うエラー表示
この記事で扱うのは「Invoke-WebRequest」を利用したときに以下のエラーに遭遇した場合についてです。
Invoke-WebRequest : Internet Explorer エンジンを使用できないか、Internet Explorer の初回起動構成が完了していないため、応答のコンテンツを解析できません。UseBasicParsing パラメーターを指定して再試行してください。
参考までにコマンド実行時のエラー画面も記載しておきます。
PS C:\> $response =Invoke-WebRequest "https://www.yahoo.co.jp/"
Invoke-WebRequest : Internet Explorer エンジンを使用できないか、Internet Explorer の初回起動構成が完了していないため、
応答のコンテンツを解析できません。UseBasicParsing パラメーターを指定して再試行してください。
発生場所 行:1 文字:12
+ $response =Invoke-WebRequest "https://www.yahoo.co.jp/"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotImplemented: (:) [Invoke-WebRequest], NotSupportedException
+ FullyQualifiedErrorId : WebCmdletIEDomNotSupportedException,Microsoft.PowerShell.Commands.InvokeWebRequestComman
d
PS C:\>
解決策は2つある
解決策は以下の2つがあります。
その中でも、最も簡単な方法としては「-UseBasicParsing」のオプションをつけることで事象は解決します。
以下で原因と2つの解決策の具体的な内容について紹介していきます。
原因は?
[Invoke-WebRequest]は IE を内部で利用するため、エラー内容に記載の通り「IE 11の初回起動構成が完了」していない場合はエラーが発生します。
[-UseBasicParsing]オプションを使うと IE を利用せず、基本的なパースを実行するため、エラーを回避することができます。
➀「-UseBasicParsing」のオプションをつけて解決する
「-UseBasicParsing」のオプションをつけて実行してみます。
PS C:\> $response =Invoke-WebRequest "https://www.yahoo.co.jp/" -UseBasicParsing
PS C:\> $response
StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" cont
ent="IE=edge,chrome=1"/><title>Yahoo! JAPAN</title><meta name="description" content="あなたの毎日を
アップデートする情...
RawContent : HTTP/1.1 200 OK
----<以下省略>----
エラーは表示されずにステータスコードも「200」が返ってきており正常に値を取得できたことがわかります。
➁ IE 11の初回起動構成を完了させて解決する
IE を起動できる状態にあるなら、一度起動してエラー文言の指摘通り「初回起動構成を完了」すればエラーは解消されます。
IE を起動後に以下のポップアップが表示されるので「OK」または「後で確認する」を押下します。
上記設定後に実行してみると、上記で記載したようなエラー表示は出力されずに正常に動作します。
PS C:\> $response =Invoke-WebRequest "https://www.yahoo.co.jp/"
PS C:\> $response
StatusCode : 200
StatusDescription : OK
Content : <!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" cont
ent="IE=edge,chrome=1"/><title>Yahoo! JAPAN</title><meta name="description" content="あなたの毎日を
アップデートする情...
RawContent : HTTP/1.1 200 OK
----<以下省略>----
コメント