Invoke-WebRequest
インターネット上の Web ページからコンテンツを取得します。
構文
StandardMethod (既定)
Invoke-WebRequest
[-Uri] <Uri>
[-UseBasicParsing]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
StandardMethodNoProxy
Invoke-WebRequest
[-Uri] <Uri>
-NoProxy
[-UseBasicParsing]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
CustomMethod
Invoke-WebRequest
[-Uri] <Uri>
-CustomMethod <String>
[-UseBasicParsing]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-RetryIntervalSec <Int32>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
CustomMethodNoProxy
Invoke-WebRequest
[-Uri] <Uri>
-CustomMethod <String>
-NoProxy
[-UseBasicParsing]
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-RetryIntervalSec <Int32>]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
説明
Invoke-WebRequest コマンドレットは、HTTP 要求と HTTPS 要求を Web ページまたは Web サービスに送信します。 これは、応答を解析し、リンク、画像、およびその他の重要な HTML 要素のコレクションを返します。
このコマンドレットは、PowerShell 3.0 で導入されました。
PowerShell 7.0 以降では、Invoke-WebRequest は環境変数によって定義されたプロキシ構成をサポートしています。 この記事の ノート セクションを参照してください。
Von Bedeutung
この記事の例では、contoso.com ドメイン内のホストを参照します。 これは、例として Microsoft によって使用される架空のドメインです。 これらの例は、コマンドレットの使用方法を示すために設計されています。
ただし、 contoso.com サイトが存在しないため、例は機能しません。 環境内のホストに例を適用します。
例
例 1: Web 要求を送信する
この例では、Invoke-WebRequest コマンドレットを使用して、Bing.com サイトに Web 要求を送信します。
$Response = Invoke-WebRequest -URI https://www.bing.com/search?q=how+many+feet+in+a+mile
$Response.InputFields | Where-Object {
$_.name -like "* Value*"
} | Select-Object Name, Value
name value
---- -----
From Value 1
To Value 5280
最初のコマンドは要求を発行し、応答を $Response 変数に保存します。
2 番目のコマンドは、Name プロパティが のような "* Value" を取得します。 フィルター処理された結果はパイプ処理されて Select-Object され、名の と Value プロパティが選択されます。
例 2: ステートフル Web サービスを使用する
この例では、ステートフル Web サービスで Invoke-WebRequest コマンドレットを使用する方法を示します。
$Body = @{
User = 'jdoe'
password = 'P@S$w0rd!'
}
$LoginResponse = Invoke-WebRequest 'https://www.contoso.com/login/' -SessionVariable 'Session' -Body $Body -Method 'POST'
$Session
$ProfileResponse = Invoke-WebRequest 'https://www.contoso.com/profile/' -WebSession $Session
$ProfileResponse
Invoke-WebRequest を最初に呼び出すと、サインイン要求が送信されます。 このコマンドは、 -SessionVariable パラメータの値に「Session」の値を指定し、その結果を $LoginResponse 変数に保存します。 コマンドが完了すると、 $LoginResponse 変数には BasicHtmlWebResponseObject が含まれ、 $Session 変数には WebRequestSession オブジェクトが含まれます。 これにより、ユーザーがサイトにログインします。
$Session の呼び出し自体は、変数内の WebRequestSession オブジェクトを示します。
Invoke-WebRequest への 2 番目の呼び出しでは、ユーザーがサイトにログインする必要があるユーザーのプロファイルがフェッチされます。
$Session変数に保存されたセッションデータは、ログイン時に作成されたサイトにセッションCookieを提供するために使用されます。 結果は $ProfileResponse 変数に保存されます。
$ProfileResponse の呼び出し自体は、変数内のBasicHtmlWebResponseObjectを示します。
例 3: Web ページからリンクを取得する
この例では、Web ページ内のリンクを取得します。
Invoke-WebRequest コマンドレットを使用して Web ページのコンテンツを取得します。 次に、Invoke-WebRequestが返すBasicHtmlWebResponseObjectの Links プロパティと、各リンクの Href プロパティを使用します。
(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Href
例 4: 要求されたページで定義されたエンコードを使用して、応答コンテンツをファイルに書き込みます。
この例では、Invoke-WebRequest コマンドレットを使用して、PowerShell ドキュメント ページの Web ページコンテンツを取得します。
$Response = Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs"
$Stream = [System.IO.StreamWriter]::new('.\docspage.html', $false, $Response.Encoding)
try {
$Stream.Write($Response.Content)
}
finally {
$Stream.Dispose()
}
最初のコマンドはページを取得し、応答オブジェクトを $Response 変数に保存します。
2 番目のコマンドは、応答コンテンツをファイルに書き込むために使用する StreamWriter を作成します。 応答オブジェクトの Encoding プロパティを使用して、ファイルのエンコードを設定します。
最後のいくつかのコマンドは、 Content プロパティをファイルに書き込み、 StreamWriterを破棄します。
Web 要求がテキスト コンテンツを返さない場合、Encoding プロパティは null であることに注意してください。
例 5: マルチパート/フォーム データ ファイルを送信する
この例では、Invoke-WebRequest コマンドレットを使用して、ファイルを multipart/form-data 送信としてアップロードします。 ファイル c:\document.txt は、documentの Content-Type で text/plain フォーム フィールドとして送信されます。
$FilePath = 'c:\document.txt'
$FieldName = 'document'
$ContentType = 'text/plain'
$FileStream = [System.IO.FileStream]::new($filePath, [System.IO.FileMode]::Open)
$FileHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new('form-data')
$FileHeader.Name = $FieldName
$FileHeader.FileName = Split-Path -leaf $FilePath
$FileContent = [System.Net.Http.StreamContent]::new($FileStream)
$FileContent.Headers.ContentDisposition = $FileHeader
$FileContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::Parse($ContentType)
$MultipartContent = [System.Net.Http.MultipartFormDataContent]::new()
$MultipartContent.Add($FileContent)
$Response = Invoke-WebRequest -Body $MultipartContent -Method 'POST' -Uri 'https://api.contoso.com/upload'
例 6: 簡略化されたマルチパート/Form-Data 送信
一部の API では、ファイルと混合コンテンツをアップロードするために multipart/form-data 送信が必要です。 この例では、ユーザー プロファイルの更新を示します。
$Uri = 'https://api.contoso.com/v2/profile'
$Form = @{
firstName = 'John'
lastName = 'Doe'
email = 'john.doe@contoso.com'
avatar = Get-Item -Path 'c:\Pictures\jdoe.png'
birthday = '1980-10-15'
hobbies = 'Hiking','Fishing','Jogging'
}
$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $Form
プロファイル フォームには、firstName、lastName、email、avatar、birthday、および hobbiesの各フィールドが必要です。 API では、ユーザー プロファイルの画像が avatar フィールドに提供されることを想定しています。 API は、同じ形式で送信される複数の hobbies エントリも受け入れます。
$Form HashTable を作成するときに、キー名がフォーム フィールド名として使用されます。 既定では、HashTable の値は文字列に変換されます。
System.IO.FileInfo 値が存在する場合は、ファイルの内容が送信されます。 配列やリストなどのコレクションが存在する場合、フォーム フィールドは複数回送信されます。
Get-Item キーで avatar を使用すると、FileInfo オブジェクトが値として設定されます。 その結果、jdoe.png の画像データが送信されます。
hobbies キーにリストを指定すると、hobbies フィールドがリスト アイテムごとに 1 回送信されます。
例 7: Invoke-WebRequest から成功以外のメッセージをキャッチする
Invoke-WebRequest が成功しない HTTP メッセージ (404、500 など) を検出すると、出力は返されません。終了エラーがスローされます。 エラーをキャッチし、StatusCode を表示するには、try/catch ブロックで実行を囲むことができます。
try
{
$Response = Invoke-WebRequest -Uri "www.microsoft.com/unkownhost"
# This will only execute if the Invoke-WebRequest is successful.
$StatusCode = $Response.StatusCode
}
catch
{
$StatusCode = $_.Exception.Response.StatusCode.value__
}
$StatusCode
404
終了エラーは、catch オブジェクトから StatusCode を取得する ブロックによってキャッチされます。
パラメーター
-AllowUnencryptedAuthentication
暗号化されていない接続を介した資格情報とシークレットの送信を許可します。 デフォルトでは、https://で始まらない Uri で Credential または Authentication オプションを指定するとエラーが発生し、暗号化されていない接続を介してプレーン テキストでシークレットが意図せずに通信されるのを防ぐために要求が中止されます。 自己責任でこの動作をオーバーライドするには、AllowUnencryptedAuthentication パラメーターを指定します。
Warnung
このパラメーターの使用は安全ではないため、推奨されません。 これは、暗号化された接続を提供できないレガシーシステムとの互換性のためにのみ提供されます。 ご自身の責任で使用してください。
この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Authentication
要求に使用する明示的な認証の種類を指定します。 既定値は [なし] です。 Authentication パラメーターは、UseDefaultCredentials パラメーターでは使用できません。
使用可能な認証オプション:
-
None: これは、 認証 が指定されていない場合のデフォルトオプションです。 明示的な認証は使用されません。 -
Basic: 資格情報が必要です。 資格情報は、RFC 7617 基本認証Authorization: Basicヘッダーをbase64(user:password)の形式で送信するために使用されます。 -
Bearer: Token パラメーターが必要です。 指定されたトークンを使用して RFC 6750Authorization: Bearerヘッダーを送信します。 -
OAuth: Token パラメーターが必要です。 指定されたトークンを使用して RFC 6750Authorization: Bearerヘッダーを送信します。
[認証] を指定すると、Authorization に指定または WebSession に含まれている ヘッダーがオーバーライドされます。
この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | WebAuthenticationType |
| 規定値: | None |
| 指定可能な値: | None, Basic, Bearer, OAuth |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Body
要求の本文を指定します。 本文は、ヘッダーに続く要求の内容です。
本文の値を Invoke-WebRequest にパイプすることもできます。
Body パラメーターを使用して、クエリ パラメーターの一覧を指定したり、応答の内容を指定したりできます。
入力が GET 要求で、本文が IDictionary (通常はハッシュ テーブル) の場合、本文はクエリ パラメーターとして URI に追加されます。 その他の要求の種類 (POST など) の場合、本文は標準の name=value 形式で要求本文の値として設定されます。
Body パラメータは、System.Net.Http.MultipartFormDataContent オブジェクトを受け入れることもできます。 これにより、multipart/form-data 要求が容易になります。
Bodyに対して MultipartFormDataContent オブジェクトを指定すると、ContentType、Headers、または WebSession パラメーター に指定されたコンテンツ関連ヘッダーは、MultipartFormDataContent オブジェクトの Content ヘッダーによってオーバーライドされます。 この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | Object |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Certificate
セキュリティで保護された Web 要求に使用されるクライアント証明書を指定します。 証明書を含む変数、または証明書を取得するコマンドまたは式を入力します。
証明書を検索するには、Get-PfxCertificate を使用するか、証明書 (Get-ChildItem) ドライブの Cert: コマンドレットを使用します。 証明書が有効でない場合、または十分な権限を持っていない場合、コマンドは失敗します。
パラメーターのプロパティ
| 型: | X509Certificate |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-CertificateThumbprint
要求を送信するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。
証明書は、クライアント証明書ベースの認証で使用されます。 これらはローカル ユーザー アカウントにのみマップできます。ドメイン アカウントでは機能しません。
証明書の拇印を取得するには、PowerShell Get-Item ドライブの Get-ChildItem または Cert: コマンドを使用します。
注
この機能は現在、Windows OS プラットフォームでのみサポートされています。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ContentType
Web 要求のコンテンツ タイプを指定します。
このパラメーターを省略し、要求メソッドが POST の場合、Invoke-WebRequest はコンテンツ タイプを application/x-www-form-urlencodedに設定します。 それ以外の場合、コンテンツ タイプは呼び出しで指定されません。
ContentType は、MultipartFormDataContent オブジェクトが Bodyに指定されたときにオーバーライドされます。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Credential
要求を送信するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01などのユーザー名を入力するか、 コマンドレットによって生成された Get-Credential オブジェクトを入力します。
資格情報 は、単独で使用することも、特定の Authentication パラメーター オプションと組み合わせて使用することもできます。 単独で使用する場合、リモート サーバーが認証チャレンジ要求を送信する場合にのみ、資格情報がリモート サーバーに提供されます。 認証 オプションと共に使用すると、資格情報が明示的に送信されます。
資格情報は PSCredential オブジェクトに格納され、パスワードは SecureStringとして格納されます。
注
SecureString データ保護についての詳細は、「SecureString はどのくらい安全ですか? 」を参照してください。.
パラメーターのプロパティ
| 型: | PSCredential |
| 規定値: | Current user |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-CustomMethod
Web 要求に使用されるカスタム メソッドを指定します。 これは、エンドポイントで必要な要求メソッドが、メソッドで使用可能なオプションでない場合に使用できます。 メソッド と CustomMethod は一緒に使用することはできません。
この例では、API に TEST HTTP 要求を行います。
Invoke-WebRequest -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | センチメートル |
パラメーター セット
CustomMethod
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CustomMethodNoProxy
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-DisableKeepAlive
コマンドレットが HTTP ヘッダーの KeepAlive 値を False に設定することを示します。 既定では、KeepAlive は true です。 KeepAlive は、後続の要求を容易にするために、サーバーへの永続的な接続を確立します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Form
辞書を multipart/form-data の送信用に変換します。
フォーム は、Bodyでは使用できません。
ContentType が使用されている場合は無視されます。
ディクショナリのキーは、フォーム フィールド名として使用されます。 既定では、フォーム値は文字列値に変換されます。
値が System.IO.FileInfo オブジェクト の場合、バイナリ ファイルの内容が送信されます。 ファイルの名前は、ファイル名 プロパティとして送信されます。 MIME の種類は application/octet-streamとして設定されます。
Get-Item を使用すると、System.IO.FileInfo オブジェクトの指定を簡略化できます。
$Form = @{
resume = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf'
}
値がコレクション型 (配列やリストなど) の場合、for フィールドは複数回送信されます。 リストの値は、既定で文字列として扱われます。 値が System.IO.FileInfo オブジェクト の場合、バイナリ ファイルの内容が送信されます。 入れ子になったコレクションはサポートされていません。
$Form = @{
tags = 'Vacation', 'Italy', '2017'
pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy\'
}
上の例では、tags フィールドはフォームに 3 回、Vacation、Italy、および 2017ごとに 1 回指定されています。
pictures フィールドは、2017-Italy フォルダー内のファイルごとに 1 回送信されます。 そのフォルダー内のファイルのバイナリ コンテンツが値として送信されます。
この機能は、PowerShell 6.1.0 で追加されました。
パラメーターのプロパティ
| 型: | IDictionary |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Headers
Web 要求のヘッダーを指定します。 ハッシュ テーブルまたはディクショナリを入力します。
UserAgent ヘッダーを設定するには、UserAgent パラメーターを使用します。 このパラメータを使用して、 User-Agent ヘッダーまたは Cookie ヘッダーを指定することはできません。
Content-Type などのコンテンツ関連のヘッダーは、MultipartFormDataContent オブジェクトが Body に指定されるとオーバーライドされます。
パラメーターのプロパティ
| 型: | IDictionary |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-InFile
ファイルから Web 要求の内容を取得します。 パスとファイル名を入力します。 パスを省略した場合、既定値は現在の場所です。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-MaximumRedirection
接続が失敗するまでに、PowerShell が代替 Uniform Resource Identifier (URI) に接続をリダイレクトする回数を指定します。 既定値は 5 です。 値が 0 (ゼロ) の場合、すべてのリダイレクトが禁止されます。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | 5 |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-MaximumRetryCount
400 ~ 599 (304 を含む) のエラー コードを受信したときに、PowerShell が接続を再試行する回数を指定します。 再試行回数を指定するには、 RetryIntervalSec パラメーターも参照してください。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Method
Web 要求に使用するメソッドを指定します。 このパラメーターに使用できる値は次のとおりです。
DefaultDeleteGetHeadMergeOptionsPatchPostPutTrace
CustomMethod パラメーターは、上記に記載されていない要求メソッドに使用できます。
パラメーターのプロパティ
| 型: | WebRequestMethod |
| 規定値: | None |
| 指定可能な値: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
StandardMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
StandardMethodNoProxy
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-NoProxy
コマンドレットがプロキシを使用して宛先に到達しないことを示します。 環境で構成されているプロキシをバイパスする必要がある場合は、このスイッチを使用します。 この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
StandardMethodNoProxy
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CustomMethodNoProxy
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-OutFile
このコマンドレットが応答本文を保存する出力ファイルを指定します。 パスとファイル名を入力します。
パスを省略した場合、既定値は現在の場所です。 名前はリテラル パスとして処理されます。
角かっこ ([]) を含む名前は、単一引用符 (') で囲む必要があります。
既定では、Invoke-WebRequest は結果をパイプラインに返します。 結果をファイルおよびパイプラインに送信するには、 Passthru パラメーターを使用します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-PassThru
ファイルに書き込むだけでなく、コマンドレットによって結果が返されることを示します。 このパラメーターは、OutFile パラメーターがコマンドでも使用されている場合にのみ有効です。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-PreserveAuthorizationOnRedirect
コマンドレットがリダイレクト間で Authorization ヘッダー (存在する場合) を保持する必要があることを示します。
既定では、コマンドレットはリダイレクトする前に Authorization ヘッダーを削除します。 このパラメーターを指定すると、ヘッダーをリダイレクトの場所に送信する必要がある場合に、このロジックが無効になります。
この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Proxy
インターネット リソースに直接接続するのではなく、要求のプロキシ サーバーを指定します。 ネットワーク プロキシ サーバーの URI を入力します。
パラメーターのプロパティ
| 型: | Uri |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
StandardMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CustomMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ProxyCredential
Proxy パラメーターで指定されたプロキシ サーバーを使用するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User@Domain.Com User01 や Domain01\User01 などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたオブジェクトなどのPSCredentialオブジェクトを入力します。
このパラメーターは、Proxy パラメーターもコマンドで使用されている場合にのみ有効です。 ProxyCredential と ProxyUseDefaultCredentials パラメーターを同じコマンドで使用することはできません。
パラメーターのプロパティ
| 型: | PSCredential |
| 規定値: | Current user |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
StandardMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CustomMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ProxyUseDefaultCredentials
コマンドレットが現在のユーザーの資格情報を使用して、Proxy パラメーターで指定されたプロキシ サーバーにアクセスすることを示します。
このパラメーターは、Proxy パラメーターもコマンドで使用されている場合にのみ有効です。 ProxyCredential と ProxyUseDefaultCredentials パラメーターを同じコマンドで使用することはできません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
StandardMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CustomMethod
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Resume
部分ファイルのダウンロードを再開するためのベスト エフォート試行を実行します。 再開 には、OutFile 必要があります。
Resume は、ローカル ファイルとリモート ファイルのサイズに対してのみ動作し、ローカル ファイルとリモート ファイルが同じであるという他の検証は実行しません。
ローカル ファイル サイズがリモート ファイル サイズよりも小さい場合、コマンドレットはファイルのダウンロードを再開し、残りのバイトをファイルの末尾に追加しようとします。
ローカル ファイル サイズがリモート ファイル サイズと同じ場合、アクションは実行されません。コマンドレットはダウンロードが既に完了していることを前提としています。
ローカル ファイルのサイズがリモート ファイル サイズより大きい場合は、ローカル ファイルが上書きされ、リモート ファイル全体が再ダウンロードされます。 この動作は、Resume を指定せずに OutFile を使用する場合と同じです。
リモート サーバーがダウンロードの再開をサポートしていない場合、ローカル ファイルは上書きされ、リモート ファイル全体が再ダウンロードされます。 この動作は、Resume を指定せずに OutFile を使用する場合と同じです。
ローカルファイルが存在しない場合は、ローカルファイルが作成され、リモートファイル全体がダウンロードされます。 この動作は、Resume を指定せずに OutFile を使用する場合と同じです。
この機能は、PowerShell 6.1.0 で追加されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-RetryIntervalSec
400 ~ 599 (304 を含む) のエラー コードを受信したときの接続の再試行間隔を指定します。 再試行回数 指定するための MaximumRetryCount パラメーターも参照してください。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SessionVariable
このコマンドレットが Web 要求セッションを作成し、値に保存する変数を指定します。
ドル記号 ($) 記号を使用せずに変数名を入力します。
セッション変数を指定すると、Invoke-WebRequest Web 要求セッション オブジェクトが作成され、PowerShell セッションで指定した名前の変数に割り当てられます。 この変数は、コマンドが完了するとすぐにセッションで使用できます。
リモート セッションとは異なり、Web 要求セッションは永続的な接続ではありません。 これは、Cookie、資格情報、最大リダイレクト値、ユーザー エージェント文字列など、接続と要求に関する情報を含むオブジェクトです。 これを使用して、Web 要求間で状態とデータを共有できます。
後続の Web 要求で Web 要求セッションを使用するには、WebSession パラメーターの値にセッション変数を指定します。 PowerShell では、新しい接続を確立するときに、Web 要求セッション オブジェクトのデータが使用されます。 Web 要求セッションの値をオーバーライドするには、UserAgent や資格情報 などのコマンドレット パラメーターを使用します。 パラメーター値は、Web 要求セッションの値よりも優先されます。
同じコマンドで SessionVariable パラメーターと WebSession パラメーターを使用することはできません。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | SV |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SkipCertificateCheck
証明書の検証チェックをスキップします。 これには、有効期限、失効、信頼されたルート機関などのすべての検証が含まれます。
Warnung
このパラメーターの使用は安全ではないため、推奨されません。 このスイッチは、テスト目的で自己署名証明書を使用して既知のホストに対してのみ使用することを目的としています。 ご自身の責任で使用してください。
この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SkipHeaderValidation
コマンドレットが検証なしで要求にヘッダーを追加する必要があることを示します。
このスイッチは、標準に準拠していないヘッダー値を必要とするサイトに使用する必要があります。 このスイッチを指定すると、検証を無効にすることで、値を検証せずに渡すことができます。 指定すると、すべてのヘッダーが検証なしで追加されます。
このスイッチは、ContentType、Headers、および UserAgent パラメーターに渡される値 検証を無効にします。
この機能は PowerShell 6.0.0 で追加されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SkipHttpErrorCheck
このパラメーターにより、コマンドレットは HTTP エラーの状態を無視し、応答の処理を続行します。 エラー応答は、成功したかのようにパイプラインに書き込まれます。
このパラメーターは PowerShell 7 で導入されました。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SslProtocol
Web 要求に対して許容される SSL/TLS プロトコルを設定します。 既定では、システムでサポートされている SSL/TLS プロトコルはすべて許可されます。 sslProtocol では、コンプライアンスのために特定のプロトコルに制限できます。
これらの値は、フラグ ベースの列挙体として定義されます。 このパラメーターを使用して、複数の値を組み合わせて複数のフラグを設定できます。 値は、SslProtocol パラメーターに値の配列として、またはそれらの値のコンマ区切り文字列として渡すことができます。 コマンドレットは、バイナリ OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。 すべてのプラットフォームで複数のオプションを定義できない場合があります。
注
Windows 以外のプラットフォームでは、オプションとして Tls または Tls12 を提供できない場合があります。
Tls13のサポートはすべてのオペレーティングシステムで利用できるわけではなく、オペレーティングシステムごとに検証する必要があります。
この機能は PowerShell 6.0.0 で追加され、Tls13 のサポートは PowerShell 7.1 で追加されました。
パラメーターのプロパティ
| 型: | WebSslProtocol |
| 規定値: | None |
| 指定可能な値: | Default, Tls, Tls11, Tls12 |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-TimeoutSec
タイムアウトするまでの要求の保留期間を指定します。値を秒単位で入力します。 既定値の 0 は、無期限のタイムアウトを指定します。
ドメインネームシステム(DNS)クエリは、戻るかタイムアウトするまでに最大15秒かかる場合があります。要求に解決が必要なホスト名が含まれており、 TimeoutSec を 0 より大きく 15 秒未満の値に設定した場合、WebException がスローされるまでに 15 秒以上かかり、要求がタイムアウトになることがあります。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | 0 |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Token
要求に含める OAuth またはベアラー トークン。 トークン は、特定の 認証 オプションで必要です。 単独で使用することはできません。
トークン は、トークンを含む SecureString を受け取ります。 トークンを手動で指定するには、次のコマンドを使用します。
Invoke-WebRequest -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
このパラメーターは、PowerShell 6.0 で導入されました。
パラメーターのプロパティ
| 型: | SecureString |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-TransferEncoding
転送エンコード HTTP 応答ヘッダーの値を指定します。 このパラメーターに使用できる値は次のとおりです。
- チャンク化された
- 圧縮する
- 空気を抜く
- GZip
- アイデンティティ
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| 指定可能な値: | chunked, compress, deflate, gzip, identity |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Uri
Web 要求の送信先となるインターネット リソースの URI (Uniform Resource Identifier) を指定します。 URI を入力します。 このパラメーターは、HTTP または HTTPS のみをサポートします。
このパラメーターは必須です。 Uri パラメーター名は省略可能です。
パラメーターのプロパティ
| 型: | Uri |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseBasicParsing
このパラメーターは非推奨になりました。 PowerShell 6.0.0 以降では、すべての Web 要求で基本的な解析のみが使用されます。 このパラメーターは下位互換性のためにのみ含まれており、このパラメーターを使用してもコマンドレットの操作には影響しません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UseDefaultCredentials
コマンドレットが現在のユーザーの資格情報を使用して Web 要求を送信することを示します。 これは、認証 または 資格情報 では使用できません。また、すべてのプラットフォームでサポートされているわけではありません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-UserAgent
Web 要求のユーザー エージェント文字列を指定します。
既定のユーザー エージェントは、オペレーティング システムとプラットフォームごとに若干のバリエーションがある Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 に似ています。
ほとんどのインターネット ブラウザで使用される標準ユーザー エージェント文字列を使用して Web サイトをテストするには、Chrome、FireFox、InternetExplorer、Opera、Safari などの PSUserAgent クラスのプロパティを使用します。
たとえば、次のコマンドは Internet Explorer のユーザー エージェント文字列を使用します。Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-WebSession
Web 要求セッションを指定します。 ドル記号 ($) を含む変数名を入力します。
Web 要求セッションの値をオーバーライドするには、UserAgent や資格情報 などのコマンドレット パラメーターを使用します。 パラメーター値は、Web 要求セッションの値よりも優先されます。
Content-Typeなどのコンテンツ関連ヘッダーは、MultipartFormDataContent オブジェクトが Bodyに指定されている場合にもオーバーライドされます。
リモート セッションとは異なり、Web 要求セッションは永続的な接続ではありません。 これは、Cookie、資格情報、最大リダイレクト値、ユーザー エージェント文字列など、接続と要求に関する情報を含むオブジェクトです。 これを使用して、Web 要求間で状態とデータを共有できます。
Web 要求セッションを作成するには、 コマンドの Invoke-WebRequest パラメーターの値に、ドル記号なしで変数名を入力します。
Invoke-WebRequest セッションを作成し、変数に保存します。 後続のコマンドでは、変数を WebSession パラメーターの値として使用します。
同じコマンドで SessionVariable パラメーターと WebSession パラメーターを使用することはできません。
パラメーターのプロパティ
| 型: | WebRequestSession |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
Object
Web リクエストの本文を Invoke-WebRequest にパイプできます。
出力
BasicHtmlWebResponseObject
メモ
PowerShell 6.0.0 以降では、Invoke-WebRequest では基本的な解析のみがサポートされます。
詳細については、「 BasicHtmlWebResponseObjectを参照してください。
.NET Core 3.1 の変更により、PowerShell 7.0 以降では HttpClient.DefaultProxy プロパティを使用してプロキシ構成を決定します。
このプロパティの値は、プラットフォームによって決まります。
- Windowsの場合: 環境変数からプロキシ構成を読み取ります。 これらの変数が定義されていない場合、プロパティはユーザーのプロキシ設定から派生します。
- macOSの場合: 環境変数からプロキシ構成を読み取ります。 これらの変数が定義されていない場合、プロパティはシステムのプロキシ設定から派生します。
- Linuxの場合: 環境変数からプロキシ構成を読み取ります。 これらの変数が定義されていない場合、プロパティは、すべてのアドレスをバイパスする未構成のインスタンスを初期化します。
Windows および Unix ベースのプラットフォームでの DefaultProxy 初期化に使用される環境変数は次のとおりです。
-
HTTP_PROXY: HTTP 要求で使用されるプロキシ サーバーのホスト名または IP アドレス。 -
HTTPS_PROXY: HTTPS 要求で使用されるプロキシ サーバーのホスト名または IP アドレス。 -
ALL_PROXY:HTTP_PROXYまたはHTTPS_PROXYが定義されていない場合に、HTTP および HTTPS 要求で使用されるプロキシー・サーバーのホスト名または IP アドレス。 -
NO_PROXY: プロキシから除外する必要があるホスト名のコンマ区切りのリスト。