Invoke-WebRequest

インターネット上の Web ページからコンテンツを取得します。

構文

Invoke-WebRequest
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-HttpVersion <Version>]
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-ConnectionTimeoutSeconds <Int32>]
      [-OperationTimeoutSeconds <Int32>]
      [-Headers <IDictionary>]
      [-SkipHeaderValidation]
      [-AllowInsecureRedirect]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-PreserveAuthorizationOnRedirect]
      [-RetryIntervalSec <Int32>]
      [-Method <WebRequestMethod>]
      [-PreserveHttpMethodOnRedirect]
      [-UnixSocket <UnixDomainSocketEndPoint>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-ProxyUseDefaultCredentials]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [<CommonParameters>]
Invoke-WebRequest
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-HttpVersion <Version>]
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-ConnectionTimeoutSeconds <Int32>]
      [-OperationTimeoutSeconds <Int32>]
      [-Headers <IDictionary>]
      [-SkipHeaderValidation]
      [-AllowInsecureRedirect]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-PreserveAuthorizationOnRedirect]
      [-RetryIntervalSec <Int32>]
      [-Method <WebRequestMethod>]
      [-PreserveHttpMethodOnRedirect]
      [-UnixSocket <UnixDomainSocketEndPoint>]
      [-NoProxy]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [<CommonParameters>]
Invoke-WebRequest
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-HttpVersion <Version>]
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-ConnectionTimeoutSeconds <Int32>]
      [-OperationTimeoutSeconds <Int32>]
      [-Headers <IDictionary>]
      [-SkipHeaderValidation]
      [-AllowInsecureRedirect]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-PreserveAuthorizationOnRedirect]
      [-RetryIntervalSec <Int32>]
      -CustomMethod <String>
      [-PreserveHttpMethodOnRedirect]
      [-UnixSocket <UnixDomainSocketEndPoint>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-ProxyUseDefaultCredentials]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [<CommonParameters>]
Invoke-WebRequest
      [-UseBasicParsing]
      [-Uri] <Uri>
      [-HttpVersion <Version>]
      [-WebSession <WebRequestSession>]
      [-SessionVariable <String>]
      [-AllowUnencryptedAuthentication]
      [-Authentication <WebAuthenticationType>]
      [-Credential <PSCredential>]
      [-UseDefaultCredentials]
      [-CertificateThumbprint <String>]
      [-Certificate <X509Certificate>]
      [-SkipCertificateCheck]
      [-SslProtocol <WebSslProtocol>]
      [-Token <SecureString>]
      [-UserAgent <String>]
      [-DisableKeepAlive]
      [-ConnectionTimeoutSeconds <Int32>]
      [-OperationTimeoutSeconds <Int32>]
      [-Headers <IDictionary>]
      [-SkipHeaderValidation]
      [-AllowInsecureRedirect]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-PreserveAuthorizationOnRedirect]
      [-RetryIntervalSec <Int32>]
      -CustomMethod <String>
      [-PreserveHttpMethodOnRedirect]
      [-UnixSocket <UnixDomainSocketEndPoint>]
      [-NoProxy]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [<CommonParameters>]

説明

Invoke-WebRequest コマンドレットは、HTTP 要求と HTTPS 要求を Web ページまたは Web サービスに送信します。 これは、応答を解析し、リンク、画像、およびその他の重要な HTML 要素のコレクションを返します。

このコマンドレットは、PowerShell 3.0 で導入されました。

PowerShell 7.0 以降では、 Invoke-WebRequest は環境変数によって定義されたプロキシ構成をサポートしています。 この記事の「 Notes 」セクションを参照してください。

重要

この記事の例では、 contoso.com ドメイン内のホストを参照します。 これは、例として Microsoft によって使用される架空のドメインです。 これらの例は、コマンドレットの使用方法を示すために設計されています。 ただし、 contoso.com サイトは存在しないため、例は機能しません。 環境内のホストに例を適用します。

PowerShell 7.4 以降では、要求の文字エンコードは既定で ASCII ではなく UTF-8 に設定されています。 別のエンコードが必要な場合は、Content-Type ヘッダーにcharset属性を設定する必要があります。

例 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"のようなInputFieldを取得します。 フィルター処理された結果は Select-Object にパイプ処理され、 Name および Value プロパティが選択されます。

例 2: ステートフル Web サービスを使用する

この例では、ステートフル Web サービスで Invoke-WebRequest コマンドレットを使用する方法を示します。

$LoginParameters = @{
    Uri             = 'https://www.contoso.com/login/'
    SessionVariable = 'Session'
    Method          = 'POST'
    Body            = @{
        User     = 'jdoe'
        Password = 'P@S$w0rd!'
    }
}
$LoginResponse = Invoke-WebRequest @LoginParameters
$ProfileResponse = Invoke-WebRequest 'https://www.contoso.com/profile/' -WebSession $Session

Invoke-WebRequestへの最初の呼び出しは、サインイン要求を送信します。 このコマンドは、SessionVariable パラメーターの値にSessionの値を指定します。 コマンドが完了すると、 $LoginResponse 変数には BasicHtmlWebResponseObject $Session 変数に WebRequestSession オブジェクトが含まれます。 これにより、ユーザーがサイトにログインします。

Invoke-WebRequestへの 2 回目の呼び出しでは、ユーザーのプロファイルがフェッチされます。この場合、ユーザーはサイトにサインインする必要があります。 $Session変数に格納されているセッション データは、ログイン中に作成されたサイトにセッション Cookie を提供します。

例 3: Web ページからリンクを取得する

この例では、Web ページ内のリンクを取得します。 Invoke-WebRequest コマンドレットを使用して Web ページのコンテンツを取得します。 次に、Invoke-WebRequestが返す BasicHtmlWebResponseObjectLinks プロパティと、各リンクの 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は、text/plainContent-Typeと共にdocumentフォーム フィールドとして送信されます。

$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: 簡略化されたマルチパート/フォーム データ送信

一部の 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

プロファイル フォームには、 firstNamelastNameemailavatarbirthdayhobbiesの各フィールドが必要です。 API では、ユーザー プロファイルの画像が avatar フィールドに提供されることを想定しています。 API は、同じ形式で送信される複数の hobbies エントリも受け入れます。

$Form HashTable を作成するときに、キー名がフォーム フィールド名として使用されます。 既定では、HashTable の値は文字列に変換されます。 System.IO.FileInfo 値が存在する場合は、ファイルの内容が送信されます。 配列やリストなどのコレクションが存在する場合、フォーム フィールドは複数回送信されます。

avatar キーでGet-Itemを使用すると、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 ブロックによってキャッチされ、Exception オブジェクトから StatusCode を取得します。

例 8: 複数のファイルを同時にダウンロードする

Invoke-WebRequest コマンドレットは、一度に 1 つのファイルのみをダウンロードできます。 次の例では、 Start-ThreadJob を使用して複数のスレッド ジョブを作成し、同時に複数のファイルをダウンロードします。

$baseUri = 'https://github.com/PowerShell/PowerShell/releases/download'
$files = @(
    @{
        Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.msi"
        OutFile = 'PowerShell-7.3.0-preview.5-win-x64.msi'
    },
    @{
        Uri = "$baseUri/v7.3.0-preview.5/PowerShell-7.3.0-preview.5-win-x64.zip"
        OutFile = 'PowerShell-7.3.0-preview.5-win-x64.zip'
    },
    @{
        Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.msi"
        OutFile = 'PowerShell-7.2.5-win-x64.msi'
    },
    @{
        Uri = "$baseUri/v7.2.5/PowerShell-7.2.5-win-x64.zip"
        OutFile = 'PowerShell-7.2.5-win-x64.zip'
    }
)

$jobs = @()

foreach ($file in $files) {
    $jobs += Start-ThreadJob -Name $file.OutFile -ScriptBlock {
        $params = $using:file
        Invoke-WebRequest @params
    }
}

Write-Host "Downloads started..."
Wait-Job -Job $jobs

foreach ($job in $jobs) {
    Receive-Job -Job $job
}

例 9: ヘッダー検証のスキップ

既定では、 Invoke-WebRequest コマンドレットは、標準で定義された値形式を持つ既知のヘッダーの値を検証します。 次の例は、この検証でエラーが発生する方法と、 SkipHeaderValidation パラメーターを使用して、無効に書式設定された値を許容するエンドポイントの値の検証を回避する方法を示しています。

$Uri = 'https://httpbin.org/headers'
$InvalidHeaders = @{
    'If-Match' = '12345'
}

Invoke-WebRequest -Uri $Uri -Headers $InvalidHeaders

Invoke-WebRequest -Uri $Uri -Headers $InvalidHeaders -SkipHeaderValidation

Invoke-WebRequest: The format of value '12345' is invalid.

StatusCode        : 200
StatusDescription : OK
Content           : {
                      "headers": {
                        "Host": "httpbin.org",
                        "If-Match": "12345",
                        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US) PowerShell/7.2.5",
                        "X-Amzn-Trace-Id": �
RawContent        : HTTP/1.1 200 OK
                    Date: Mon, 08 Aug 2022 16:24:24 GMT
                    Connection: keep-alive
                    Server: gunicorn/19.9.0
                    Access-Control-Allow-Origin: *
                    Access-Control-Allow-Credentials: true
                    Content-Type: application�
Headers           : {[Date, System.String[]], [Connection, System.String[]], [Server, System.String[]], [Access-Control-Allow-Origin, System.String[]]�}
Images            : {}
InputFields       : {}
Links             : {}
RawContentLength  : 249
RelationLink      : {}

httpbin.org は、トラブルシューティングのために Web 要求と応答に関する情報を返すサービスです。 $Uri変数はサービスの/headers エンドポイントに割り当てられ、要求のヘッダーが応答の内容として返されます。

If-Match要求ヘッダーは、RFC-7232 セクション 3.1 で定義されておりそのヘッダーの値を周囲の引用符で定義する必要があります。 $InvalidHeaders変数には、"12345"ではなく12345として定義されているため、If-Matchの値が無効なハッシュ テーブルが割り当てられます。

ヘッダーが無効な Invoke-WebRequest を呼び出すと、書式設定された値が無効であることを示すエラーが返されます。 要求はエンドポイントに送信されません。

SkipHeaderValidation パラメーターを使用してInvoke-WebRequestを呼び出すと、検証エラーが無視され、エンドポイントに要求が送信されます。 エンドポイントは準拠していないヘッダー値を許容するため、コマンドレットはエラーなしで応答オブジェクトを返します。

例 10: HTTP 2.0 を使用して要求を送信する

この例では、HTTP 2.0 プロトコルを使用して Web ページ内のリンクを取得します。 Invoke-WebRequest コマンドレットを使用して Web ページのコンテンツを取得します。 次に、Invoke-WebRequestが返す BasicHtmlWebResponseObjectLinks プロパティと、各リンクの Href プロパティを使用します。

(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Href

例 11: Unix ソケット アプリケーションに要求を送信する

Docker などの一部のアプリケーションでは、通信用の Unix ソケットが公開されています。 この例では、Docker API を使用して Docker イメージの一覧を照会します。 このコマンドレットは、Unix ソケットを使用して Docker デーモンに接続します。

Invoke-WebRequest -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"

パラメーター

-AllowInsecureRedirect

HTTPS から HTTP へのリダイレクトを許可します。 既定では、HTTPS から HTTP にリダイレクトされるすべての要求はエラーになり、暗号化されていない接続を介してプレーン テキストで意図せずに通信しないように要求が中止されます。 この動作を自分の責任でオーバーライドするには、 AllowInsecureRedirect パラメーターを使用します。

このパラメーターは PowerShell 7.4 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-AllowUnencryptedAuthentication

暗号化されていない接続を介した資格情報とシークレットの送信を許可します。 既定では、 Credential または Authentication オプションに Uri で始まらない https:// を指定するとエラーが発生し、暗号化されていない接続を介してプレーン テキストでシークレットが意図せずに通信されないように要求が中止されます。 この動作を自分の責任でオーバーライドするには、 AllowUnencryptedAuthentication パラメーターを指定します。

警告

このパラメーターの使用は安全ではなく、推奨されません。 暗号化された接続を提供できないレガシ システムとの互換性のためにのみ提供されます。 ご自身の責任で使用してください。

この機能は PowerShell 6.0.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Authentication

要求に使用する明示的な認証の種類を指定します。 既定値は [None](なし) です。 Authentication パラメーターは、UseDefaultCredentials パラメーターでは使用できません。

使用可能な認証オプション:

  • None: これは、 Authentication が指定されていない場合の既定のオプションです。 明示的な認証は使用されません。
  • Basic: Credentialが必要です。 資格情報は、RFC 7617 基本認証 Authorization: Basic ヘッダーとして base64(user:password)形式で送信されます。
  • Bearer: Token パラメーターが必要です。 指定されたトークンを使用して RFC 6750 Authorization: Bearer ヘッダーを送信します。
  • OAuth: Token パラメーターが必要です。 指定されたトークンを使用して RFC 6750 Authorization: Bearer ヘッダーを送信します。

Authenticationを指定すると、Headersに指定されたAuthorizationヘッダー、またはWebSessionに含まれるすべてのヘッダーがオーバーライドされます。

この機能は PowerShell 6.0.0 で追加されました。

型:WebAuthenticationType
指定可能な値:None, Basic, Bearer, OAuth
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Body

要求の本文を指定します。 本文は、ヘッダーに続く要求の内容です。 本文の値をパイプして Invoke-WebRequestすることもできます。

Body パラメーターを使用して、クエリ パラメーターの一覧を指定したり、応答の内容を指定したりできます。 クエリ パラメーターの場合、コマンドレットは System.Net.WebUtility.UrlEncode メソッド メソッドを使用してキーと値のペアをエンコードします。 URL のエンコード文字列の詳細については、「urlEncode() メソッドリファレンスを参照してください。

入力が POST 要求で、本文が String の場合、最初の等号 (=) の左側の値がフォーム データのキーとして設定され、残りのテキストが値として設定されます。 複数のキーを指定するには、BodyIDictionary オブジェクト (ハッシュ テーブルなど) を使用します。

入力が GET 要求で、本文が IDictionary (通常はハッシュ テーブル) の場合、本文はクエリ パラメーターとして URI に追加されます。 その他の要求の種類 (PATCH など) の場合、本文は標準の name=value 形式の要求本文の値として設定され、値は URL でエンコードされます。

入力が System.Xml.XmlNode オブジェクトで、XML 宣言でエンコードが指定されている場合、そのエンコードは、 ContentType パラメーターによってオーバーライドされない限り、要求内のデータに使用されます。

Body パラメーターは、System.Net.Http.MultipartFormDataContent オブジェクトも受け入れます。 これにより、 multipart/form-data 要求が容易になります。 MultipartFormDataContent オブジェクトが Body に指定されると、ContentTypeHeaders、または WebSession パラメーターに指定された Content 関連ヘッダーは、MultipartFormDataContent オブジェクトの Content ヘッダーによってオーバーライドされます。 この機能は PowerShell 6.0.0 で追加されました。

型:Object
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Certificate

セキュリティで保護された Web 要求に使用されるクライアント証明書を指定します。 証明書が格納されている変数を入力するか、証明書を取得するコマンドまたは式を入力します。

証明書を検索するには、Get-PfxCertificateを使用するか、証明書 (Cert:) ドライブの Get-ChildItem コマンドレットを使用します。 証明書が有効でない場合、または十分な権限を持っていない場合、コマンドは失敗します。

型:X509Certificate
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CertificateThumbprint

要求を送信するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。

証明書は、クライアント証明書ベースの認証で使用されます。 証明書はローカル ユーザー アカウントにのみマップでき、ドメイン アカウントにはマップできません。

証明書の拇印を表示するには、 Get-Item または Get-ChildItem コマンドを使用して、 Cert:\CurrentUser\Myで証明書を検索します。

Note

この機能は、Windows OS プラットフォームでのみサポートされます。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ConnectionTimeoutSeconds

タイムアウトするまでの要求の保留期間を指定します。値を秒単位で入力します。 既定値は 0 で、無制限のタイムアウトを意味しています。

ドメイン ネーム システム (DNS) クエリの戻りまたはタイムアウトには最大 15 秒かかることがあります。要求に解決が必要なホスト名が含まれており、 ConnectionTimeoutSeconds を 0 より大きい値に設定したが 15 秒未満の場合、 WebException がスローされ、要求がタイムアウトするまでに 15 秒以上かかることがあります。

このパラメーターは、PowerShell 7.4 の TimeoutSec パラメーターに置き換えられました。 TimeoutSecConnectionTimeoutSeconds のエイリアスとして使用できます。

型:Int32
Aliases:TimeoutSec
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ContentType

Web 要求のコンテンツ タイプを指定します。

ContentType の値にエンコード形式 (charset) が含まれている場合、コマンドレットはその形式を使用して Web 要求の本文をエンコードします。 ContentTypeでエンコード形式が指定されていない場合は、代わりに既定のエンコード形式が使用されます。 エンコード形式のContentTypeの例として、Latin/Cyrillic アルファベットを指定するtext/plain; charset=iso-8859-5があります。

このパラメーターを省略し、要求メソッドが POST または PUT の場合、 Invoke-WebRequest コンテンツ タイプを application/x-www-form-urlencoded に設定します。 それ以外の場合、コンテンツ タイプは呼び出しで指定されません。

ContentType は、 MultipartFormDataContent オブジェクトが Body に指定されたときにオーバーライドされます。

PowerShell 7.4 以降では、このパラメーターと Headers パラメーターの両方を使用して Content-Type ヘッダーを定義すると、 ContentType パラメーターで指定された値が使用されます。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

要求を送信するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01Domain01\User01 などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたPSCredential オブジェクトを入力します。

Credential は、単独で使用することも、特定の Authentication パラメーター オプションと組み合わせて使用することもできます。 単独で使用する場合、リモート サーバーが認証チャレンジ要求を送信する場合にのみ、資格情報がリモート サーバーに提供されます。 Authentication オプションと共に使用すると、資格情報が明示的に送信されます。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「 SecureString のセキュリティ保護方法」を 参照してください。

型:PSCredential
配置:Named
規定値:Current user
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CustomMethod

Web 要求に使用されるカスタム メソッドを指定します。 これは、エンドポイントで必要な要求メソッドが Method で使用できるオプションでない場合に使用できます。 MethodCustomMethod を一緒に使用することはできません。

この例では、API に TEST HTTP 要求を行います。

Invoke-WebRequest -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'

この機能は PowerShell 6.0.0 で追加されました。

型:String
Aliases:CM
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DisableKeepAlive

コマンドレットが HTTP ヘッダーの KeepAlive 値を False に設定することを示します。 既定では、 KeepAliveTrue です。 KeepAlive は、後続の要求を容易にするために、サーバーへの永続的な接続を確立します。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Form

ディクショナリを multipart/form-data 送信に変換します。 Form は、 Body では使用できません。 ContentTypeを使用する場合は無視されます。

ディクショナリのキーは、フォーム フィールド名として使用されます。 既定では、フォーム値は文字列値に変換されます。

値が System.IO.FileInfo オブジェクトの場合、バイナリ ファイルの内容が送信されます。 ファイルの名前は、 filename プロパティとして送信されます。 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 回、 VacationItaly、および 2017ごとに 1 回指定されています。 pictures フィールドは、2017-Italy フォルダー内のファイルごとに 1 回送信されます。 そのフォルダー内のファイルのバイナリ コンテンツが値として送信されます。

この機能は、PowerShell 6.1.0 で追加されました。

型:IDictionary
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Headers

Web 要求のヘッダーを指定します。 ハッシュ テーブルまたは辞書を入力します。

Content-Typeなどのコンテンツ関連ヘッダーは、MultipartFormDataContent オブジェクトが Body に指定されるとオーバーライドされます。

PowerShell 7.4 以降では、このパラメーターを使用して Content-Type ヘッダーを定義し、 ContentType パラメーターを使用する場合は、 ContentType パラメーターで指定された値が使用されます。

型:IDictionary
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-HttpVersion

要求に使用される HTTP バージョンを指定します。 既定値は、1.1 です。

有効な値は次の通りです。

  • 1.0
  • 1.1
  • 2.0
  • 3.0
型:Version
配置:Named
規定値:1.1
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InFile

ファイルから Web 要求の内容を取得します。 パスとファイル名を入力します。 パスを省略した場合、既定値は現在のディレクトリです。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MaximumRedirection

接続が失敗するまでに、PowerShell が代替 Uniform Resource Identifier (URI) に接続をリダイレクトする回数を指定します。 既定値は 5 です。 値 0 (ゼロ) を指定した場合、リダイレクトはまったく行われません。

型:Int32
配置:Named
規定値:5
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MaximumRetryCount

400 ~ 599 (304 を含む) のエラー コードを受信したときに、PowerShell が接続を再試行する回数を指定します。 再試行回数の指定については、 RetryIntervalSec パラメーターも参照してください。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Method

Web 要求に使用するメソッドを指定します。 このパラメーターの有効値は、次のとおりです。

  • Default
  • Delete
  • Get
  • Head
  • Merge
  • Options
  • Patch
  • Post
  • Put
  • Trace

CustomMethod パラメーターは、上記以外の要求メソッドに使用できます。

型:WebRequestMethod
指定可能な値:Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NoProxy

コマンドレットがプロキシを使用して宛先に到達しないことを示します。 環境で構成されているプロキシをバイパスする必要がある場合は、このスイッチを使用します。 この機能は PowerShell 6.0.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-OperationTimeoutSeconds

このタイムアウトは、ストリーム内のデータ読み取りに適用され、ストリーム時間全体には適用されません。 既定値の 0 は、無期限のタイムアウトを指定します。

値を 30 秒に設定すると、ストリーム内のデータ間で 30 秒を超える遅延が発生すると、要求が終了します。 ダウンロードに数分かかる大きなファイルは、ストリームが 30 秒を超えてストールしない限り終了しません。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-OutFile

既定では、 Invoke-WebRequest は結果をパイプラインに返します。 OutFile パラメーターを使用すると、結果は指定されたファイルに保存され、パイプラインには返されません。 パスとファイル名を入力します。 結果をファイルとパイプラインに送信するには、 Passthru パラメーターを追加します。

パスを省略した場合、既定値は現在のディレクトリです。 名前はリテラル パスとして扱われます。 角かっこ ([]) を含む名前は、単一引用符 (') で囲む必要があります。

PowerShell 7.4 以降では、ファイル名を指定せずにフォルダー パスを指定できます。 このコマンドを実行すると、リダイレクト後に解決された URI の最後のセグメントのファイル名が使用されます。 OutFile のフォルダー パスを指定する場合は、Resume パラメーターを使用できません。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PassThru

ファイルに書き込むだけでなく、コマンドレットによって結果が返されることを示します。 このパラメーターは、コマンドで OutFile パラメーターが使用されている場合にのみ有効です。

Note

PassThru パラメーターを使用すると、出力はパイプラインに書き込まれますが、ファイルは作成されません。 これは、PowerShell 7.5-preview.4 で修正されています。 詳細については、 PowerShell の問題 #15409 を参照してください。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PreserveAuthorizationOnRedirect

コマンドレットがリダイレクト間で Authorization ヘッダーが存在する場合は保持する必要があることを示します。

既定では、コマンドレットはリダイレクトする前に Authorization ヘッダーを削除します。 このパラメーターを指定すると、ヘッダーをリダイレクトの場所に送信する必要がある場合に、このロジックが無効になります。

この機能は PowerShell 6.0.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PreserveHttpMethodOnRedirect

コマンドレットがリダイレクト間で要求のメソッドを保持する必要があることを示します。

既定では、コマンドレットはリダイレクト時にメソッドを GET に変更します。 このパラメーターを指定すると、目的のメソッドをリダイレクトで使用できるようにするために、このロジックが無効になります。

この機能は、PowerShell 7.4 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Proxy

インターネット リソースに直接接続するのではなく、要求のプロキシ サーバーを指定します。 ネットワーク プロキシ サーバーの URI を入力します。

型:Uri
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ProxyCredential

Proxy パラメーターで指定されたプロキシ サーバーを使用するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01Domain01\User01などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたPSCredential オブジェクトを入力します。

このパラメーターは、コマンドで Proxy パラメーターも使用されている場合にのみ有効です。 同じコマンドで ProxyCredential および ProxyUseDefaultCredentials パラメーターを使用することはできません。

型:PSCredential
配置:Named
規定値:Current user
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ProxyUseDefaultCredentials

コマンドレットが現在のユーザーの資格情報を使用して、 Proxy パラメーターで指定されたプロキシ サーバーにアクセスすることを示します。

このパラメーターは、コマンドで Proxy パラメーターも使用されている場合にのみ有効です。 同じコマンドで ProxyCredential および ProxyUseDefaultCredentials パラメーターを使用することはできません。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Resume

部分ファイルのダウンロードを再開するためのベスト エフォート試行を実行します。 Resume には OutFile が必要です。

Resume はローカル ファイルとリモート ファイルのサイズに対してのみ動作し、ローカル ファイルとリモート ファイルが同じであるという他の検証は実行しません。

ローカル ファイル サイズがリモート ファイル サイズよりも小さい場合、コマンドレットはファイルのダウンロードを再開し、残りのバイトをファイルの末尾に追加しようとします。

ローカル ファイル サイズがリモート ファイル サイズと同じ場合、アクションは実行されません。コマンドレットはダウンロードが既に完了していることを前提としています。

ローカル ファイルのサイズがリモート ファイル サイズより大きい場合は、ローカル ファイルが上書きされ、リモート ファイル全体が再ダウンロードされます。 この動作は、Resume なしで OutFile を使用する場合と同じです。

リモート サーバーがダウンロード再開をサポートしていない場合は、ローカル ファイルが上書きされ、リモート ファイル全体が再ダウンロードされます。 この動作は、Resume なしで OutFile を使用する場合と同じです。

ローカル ファイルが存在しない場合は、ローカル ファイルが作成され、リモート ファイル全体がダウンロードされます。 この動作は、Resume なしで OutFile を使用する場合と同じです。

この機能は、PowerShell 6.1.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RetryIntervalSec

400 ~ 599 (304 を含む) のエラー コードを受信したときの接続の再試行間隔を指定します。 再試行回数の指定については、 MaximumRetryCount パラメーターも参照してください。 値は、 1[int]::MaxValueの間である必要があります。

エラー コードが 429 で、応答にヘッダーに Retry-After プロパティが含まれている場合、このパラメーターが指定されている場合でも、コマンドレットはその値を再試行間隔に使用します。

型:Int32
配置:Named
規定値:5
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SessionVariable

このコマンドレットが Web 要求セッションを作成し、値に保存する変数を指定します。 ドル記号 ($) 記号を使用せずに変数名を入力します。

セッション変数を指定すると、 Invoke-WebRequest は Web 要求セッション オブジェクトを作成し、PowerShell セッションで指定した名前の変数に割り当てます。 コマンドが完了すると、すぐに変数をセッションで使用できます。

PowerShell 7.4 より前では、Web 要求セッションは永続的な接続ではありません。 これは、Cookie、資格情報、最大リダイレクト値、ユーザー エージェント文字列など、接続と要求に関する情報を含むオブジェクトです。 Web 要求セッションを使用して、Web 要求の間で状態とデータを共有することができます。

PowerShell 7.4 以降では、後続の要求でセッションのプロパティがオーバーライドされない限り、Web 要求セッションは永続的です。 その場合、コマンドレットは新しい値を使用してセッションを再作成します。 永続的なセッションにより、要求の繰り返しのオーバーヘッドが軽減され、はるかに高速になります。

後続の Web 要求で Web 要求セッションを使用するには、 WebSession パラメーターの値にセッション変数を指定します。 PowerShell では、新しい接続を確立するときに、Web 要求セッション オブジェクトのデータが使用されます。 Web 要求セッションの値をオーバーライドするには、 UserAgentCredential などのコマンドレット パラメーターを使用します。 パラメーターの値は、Web 要求セッションの値よりも優先されます。

同じコマンドで SessionVariable および WebSession パラメーターを使用することはできません。

型:String
Aliases:SV
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SkipCertificateCheck

証明書の検証チェックをスキップします。 これには、有効期限、失効、信頼されたルート機関などのすべての検証が含まれます。

警告

このパラメーターの使用は安全ではなく、推奨されません。 このスイッチは、テスト目的で自己署名証明書を使用して既知のホストに対してのみ使用することを目的としています。 ご自身の責任で使用してください。

この機能は PowerShell 6.0.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SkipHeaderValidation

コマンドレットが検証なしで要求にヘッダーを追加する必要があることを示します。

このスイッチは、標準に準拠していないヘッダー値を必要とするサイトに使用する必要があります。 このスイッチを指定すると、検証が無効になり、値をオフに渡すことができます。 指定すると、すべてのヘッダーが検証なしで追加されます。

このスイッチは、 ContentTypeHeaders および UserAgent パラメーターに渡される値の検証を無効にします。

この機能は PowerShell 6.0.0 で追加されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SkipHttpErrorCheck

このパラメーターにより、コマンドレットは HTTP エラーの状態を無視し、応答の処理を続行します。 エラー応答は、成功したかのようにパイプラインに書き込まれます。

このパラメーターは PowerShell 7 で導入されました。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SslProtocol

Web 要求に対して許容される SSL/TLS プロトコルを設定します。 既定では、システムでサポートされている SSL/TLS プロトコルはすべて許可されます。 SslProtocol では、コンプライアンスのために特定のプロトコルに制限できます。

これらの値は、フラグ ベースの列挙体として定義されます。 このパラメーターを使用して、複数の値を組み合わせて複数のフラグを設定できます。 値は、 SslProtocol パラメーターに値の配列として、またはそれらの値のコンマ区切り文字列として渡すことができます。 このコマンドレットは、バイナリ OR 操作を使用して値を結合します。 配列として値を渡すことは最も簡単なオプションであり、値にタブ補完を使用することもできます。 すべてのプラットフォームで複数のオプションを定義できない場合があります。

Note

Windows 以外のプラットフォームでは、オプションとして Tls または Tls12 を提供できない場合があります。 Tls13のサポートはすべてのオペレーティング システムで利用できるわけではありません。また、オペレーティング システムごとに検証する必要があります。

この機能は PowerShell 6.0.0 で追加され、 Tls13 のサポートは PowerShell 7.1 で追加されました。

型:WebSslProtocol
指定可能な値:Default, Tls, Tls11, Tls12
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Token

要求に含める OAuth またはベアラー トークン。 トークン は、特定の Authentication オプションで必要です。 個別に使用することはできません。

トークン はトークンを含む SecureString を受け取ります。 トークンを手動で指定するには、次のコマンドを使用します。

Invoke-WebRequest -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)

このパラメーターは、PowerShell 6.0 で導入されました。

型:SecureString
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TransferEncoding

転送エンコード HTTP 応答ヘッダーの値を指定します。 このパラメーターの有効値は、次のとおりです。

  • Chunked
  • Compress
  • Deflate
  • GZip
  • Identity
型:String
指定可能な値:chunked, compress, deflate, gzip, identity
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UnixSocket

接続先の Unix ソケットの名前を指定します。 このパラメーターは、Unix ベースのシステムおよび Windows バージョン 1803 以降でサポートされています。 Unix ソケットの Windows サポートの詳細については、AF_UNIXブログ記事Windows/WSL 相互運用機能を参照してください。

このパラメーターは PowerShell 7.4 で追加されました。

型:UnixDomainSocketEndPoint
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Uri

Web 要求の送信先となるインターネット リソースの URI (Uniform Resource Identifier) を指定します。 URI を入力します。 このパラメーターは、HTTP または HTTPS のみをサポートします。

このパラメーターは必須です。 パラメーター名 Uri は省略可能です。

型:Uri
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UseBasicParsing

このパラメーターは非推奨になりました。 PowerShell 6.0.0 以降では、すべての Web 要求で基本的な解析のみが使用されます。 このパラメーターは下位互換性のためにのみ含まれており、このパラメーターを使用してもコマンドレットの操作には影響しません。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UseDefaultCredentials

コマンドレットが現在のユーザーの資格情報を使用して Web 要求を送信することを示します。 これは、 Authentication または Credential では使用できません。また、すべてのプラットフォームでサポートされているわけではありません。

型:SwitchParameter
配置: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
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WebSession

Web 要求セッションを指定します。 ドル記号 ($) を含む変数名を入力します。

Web 要求セッションの値をオーバーライドするには、 UserAgentCredential などのコマンドレット パラメーターを使用します。 パラメーターの値は、Web 要求セッションの値よりも優先されます。 Content-Typeなどのコンテンツ関連ヘッダーは、MultipartFormDataContent オブジェクトが Body に指定されている場合にもオーバーライドされます。

リモート セッションとは異なり、Web 要求セッションは永続的な接続ではありません。 これは、Cookie、資格情報、最大リダイレクト値、ユーザー エージェント文字列など、接続と要求に関する情報を含むオブジェクトです。 Web 要求セッションを使用して、Web 要求の間で状態とデータを共有することができます。

Web 要求セッションを作成するには、Invoke-WebRequest コマンドの SessionVariable パラメーターの値に、ドル記号なしで変数名を入力します。 Invoke-WebRequest はセッションを作成し、変数に保存します。 後続のコマンドでは、変数を WebSession パラメーターの値として使用します。

同じコマンドで SessionVariable および WebSession パラメーターを使用することはできません。

型:WebRequestSession
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

Object

Web 要求の本文をこのコマンドレットにパイプできます。

出力

BasicHtmlWebResponseObject

このコマンドレットは、Web 要求の結果を表す応答オブジェクトを返します。

メモ

PowerShell には、 Invoke-WebRequestの次のエイリアスが含まれています。

  • すべてのプラットフォーム:
    • iwr

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: プロキシから除外するホスト名のコンマ区切りの一覧。

PowerShell 7.4 では、Brotli 圧縮アルゴリズムのサポートが追加されました。