Invoke-RestMethod
RESTful Web サービスに HTTP または HTTPS 要求を送信します。
構文
Invoke-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
[-FollowRelLink]
[-MaximumFollowRelLink <Int32>]
[-ResponseHeadersVariable <String>]
[-StatusCodeVariable <String>]
[-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-RestMethod
、高度に構造化されたデータを返す Representational State Transfer (REST) Web サービスに HTTP 要求と HTTPS 要求を送信します。
PowerShell は、データ型に基づいて応答を書式設定します。 RSS または ATOM フィードの場合、PowerShell はアイテムまたはエントリ XML ノードを返します。 JavaScript Object Notation (JSON) または XML の場合、PowerShell はコンテンツをオブジェクトに [PSCustomObject]
変換または逆シリアル化します。
Note
REST エンドポイントが複数のオブジェクトを返すと、オブジェクトは配列として受け取ります。 出力 Invoke-RestMethod
を別のコマンドにパイプすると、1 つの [Object[]]
オブジェクトとして送信されます。 その配列の内容は、パイプラインの次のコマンドには列挙されません。
このコマンドレットは、Windows PowerShell 3.0 で導入されました。
PowerShell 7.0 以降では、 Invoke-RestMethod
環境変数によって定義されたプロキシ構成がサポートされています。 この記事の 「メモ 」セクションを参照してください。
PowerShell 7.4 以降では、要求の文字エンコードは既定で ASCII ではなく UTF-8 に設定されています。 別のエンコードが必要な場合は、ヘッダーに属性を charset
設定する Content-Type
必要があります。
例
例 1: PowerShell RSS フィードを取得する
この例では、コマンドレットを Invoke-RestMethod
使用して PowerShell ブログ RSS フィードから情報を取得します。 このコマンドでは、コマンドレットを Format-Table
使用して、各ブログの Title プロパティと pubDate プロパティの値をテーブルに表示します。
Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/ |
Format-Table -Property Title, pubDate
Title pubDate
----- -------
Join the PowerShell 10th Anniversary Celebration! Tue, 08 Nov 2016 23:00:04 +0000
DSC Resource Kit November 2016 Release Thu, 03 Nov 2016 00:19:07 +0000
PSScriptAnalyzer Community Call - Oct 18, 2016 Thu, 13 Oct 2016 17:52:35 +0000
New Home for In-Box DSC Resources Sat, 08 Oct 2016 07:13:10 +0000
New Social Features on Gallery Fri, 30 Sep 2016 23:04:34 +0000
PowerShellGet and PackageManagement in PowerShell Gallery and GitHub Thu, 29 Sep 2016 22:21:42 +0000
PowerShell Security at DerbyCon Wed, 28 Sep 2016 01:13:19 +0000
DSC Resource Kit September Release Thu, 22 Sep 2016 00:25:37 +0000
PowerShell DSC and implicit remoting broken in KB3176934 Tue, 23 Aug 2016 15:07:50 +0000
PowerShell on Linux and Open Source! Thu, 18 Aug 2016 15:32:02 +0000
例 2: POST 要求を実行する
この例では、ユーザーは、ユーザーの組織内のイントラネット Web サイトで POST 要求を実行 Invoke-RestMethod
します。
$Cred = Get-Credential
$Url = "https://server.contoso.com:8089/services/search/jobs/export"
$Body = @{
search = "search index=_internal | reverse | table index,host,source,sourcetype,_raw"
output_mode = "csv"
earliest_time = "-2d@d"
latest_time = "-1d@d"
}
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body -OutFile output.csv
資格情報の入力を求められた後に$Cred
格納され、アクセスする URL は 〗〘〗〗$Url
変数は $Body
検索条件を記述し、CSV を出力モードとして指定し、2 日前に開始して 1 日前に終了する返されるデータの期間を指定します。 body 変数は、通信している特定の REST API Invoke-RestMethod
に適用されるパラメーターの値を指定します。
このコマンドは Invoke-RestMethod
、結果の CSV 出力ファイルのパスとファイル名を指定して、すべての変数を配置して実行されます。
例 3: 関係リンクに従う
一部の REST API では、RFC5988ごとの Relation Links による改ページがサポートされています。 ヘッダーを解析して次のページの URL を取得する代わりに、コマンドレットでこれを行うことができます。 この例では、PowerShell GitHub リポジトリから最初の 2 ページの問題を返します。
$url = 'https://api.github.com/repos/powershell/powershell/issues'
Invoke-RestMethod $url -FollowRelLink -MaximumFollowRelLink 2
例 4: 簡略化されたマルチパート/フォーム データ送信
一部の 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-RestMethod -Uri $Uri -Method Post -Form $Form
プロファイル フォームには、次のフィールドが必要です。 firstName
lastName
email
avatar
birthday
hobbies
この API では、ユーザー プロファイルの画像がフィールドに avatar
提供されることを想定しています。 API は、同じフォームで送信される複数 hobbies
のエントリも受け入れます。
HashTable を $Form
作成するときに、キー名がフォーム フィールド名として使用されます。 既定では、HashTable の値は文字列に変換されます。 値が存在する System.IO.FileInfo
場合は、ファイルの内容が送信されます。 配列やリストなどのコレクションが存在する場合、フォーム フィールドは複数回送信されます。
キーでavatar
使用Get-Item
すると、オブジェクトがFileInfo
値として設定されます。 結果として、画像データ jdoe.png
が送信されます。
キーに hobbies
リストを指定することで、 hobbies
フィールドはリスト アイテムごとに提出に 1 回表示されます。
例 5: 複数のヘッダーを渡す
API では、多くの場合、認証または検証に渡されたヘッダーが必要です。 この例では、複数のヘッダー hash-table
を REST API に渡す方法を示します。
$headers = @{
'userId' = 'UserIDValue'
'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
例 6: パイプラインで返された項目を列挙する
GitHub は複数のオブジェクトを配列として返します。 出力を別のコマンドにパイプすると、1 つの [Object[]]
オブジェクトとして送信されます。
パイプラインにオブジェクトを列挙するには、結果 Write-Output
をパイプ処理するか、コマンドレットをかっこで囲みます。 次の例では、GitHub によって返されるオブジェクトの数をカウントします。 次に、パイプラインに列挙されたオブジェクトの数をカウントします。
$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
$x = 0
Invoke-RestMethod -Uri $uri | ForEach-Object { $x++ }
$x
1
$x = 0
(Invoke-RestMethod -Uri $uri) | ForEach-Object { $x++ }
$x
30
$x = 0
Invoke-RestMethod -Uri $uri | Write-Output | ForEach-Object { $x++ }
$x
30
例 7: ヘッダー検証のスキップ
既定では、コマンドレットは Invoke-RestMethod
、標準で定義された値の形式を持つ既知のヘッダーの値を検証します。 次の例は、この検証でエラーが発生する方法と、SkipHeaderValidation パラメーターを使用して、無効に書式設定された値を許容するエンドポイントの値の検証を回避する方法を示しています。
$Uri = 'https://httpbin.org/headers'
$InvalidHeaders = @{
'If-Match' = '12345'
}
Invoke-RestMethod -Uri $Uri -Headers $InvalidHeaders
Invoke-RestMethod -Uri $Uri -Headers $InvalidHeaders -SkipHeaderValidation |
Format-List
Invoke-RestMethod: The format of value '12345' is invalid.
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=Root=1-62f150a6-27754fd4226f31b43a3d2874}
httpbin.org は、トラブルシューティングのために Web 要求と応答に関する情報を返すサービスです。 変数は $Uri
サービスのエンドポイントに /headers
割り当てられ、要求のヘッダーが応答の内容として返されます。
要求ヘッダーは If-Match
RFC-7232 セクション 3.1 で定義されており、そのヘッダーの値を周囲の引用符で定義する必要があります。 変数には$InvalidHeaders
、値が無効12345
なハッシュ テーブルがIf-Match
割り当てられます。これは、代わりに "12345"
.
無効なヘッダーを使用して呼び出すと Invoke-RestMethod
、書式設定された値が無効であることを報告するエラーが返されます。 要求はエンドポイントに送信されません。
SkipHeaderValidation パラメーターを使用して呼び出すとInvoke-RestMethod
、検証エラーが無視され、エンドポイントに要求が送信されます。 エンドポイントは準拠していないヘッダー値を許容するため、コマンドレットはエラーなしで応答オブジェクトを返します。
例 8: HTTP 2.0 を使用して要求を送信する
この例では、HTTP 2.0 プロトコルを使用して GitHub の問題を照会します。
$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
Invoke-RestMethod -Uri $uri -HttpVersion 2.0 -SkipCertificateCheck
例 9: Unix ソケット アプリケーションに要求を送信する
Docker などの一部のアプリケーションでは、通信用の Unix ソケットが公開されています。 この例では、Docker API を使用して Docker イメージの一覧を照会します。 このコマンドレットは、Unix ソケットを使用して Docker デーモンに接続します。
Invoke-RestMethod -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
暗号化されていない接続を介した資格情報とシークレットの送信を許可します。 既定では、資格情報または認証オプションに始https://
まらない URI を指定するとエラーが発生し、暗号化されていない接続を介してプレーン テキスト内のシークレットが意図せずに通信されないように要求が中止されます。 この動作を独自のリスクでオーバーライドするには、AllowUnencryptedAuthentication パラメーターを指定します。
警告
このパラメーターの使用は安全ではなく、推奨されません。 暗号化された接続を提供できないレガシ システムとの互換性のためにのみ提供されます。 ご自身の責任で使用してください。
この機能は PowerShell 6.0.0 で追加されました。
型: | SwitchParameter |
配置: | 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
ヘッダーを送信します。
認証を指定すると、ヘッダーに指定されたヘッダーまたは WebSession に含まれるヘッダーがAuthorization
オーバーライドされます。
この機能は PowerShell 6.0.0 で追加されました。
型: | WebAuthenticationType |
指定可能な値: | None, Basic, Bearer, OAuth |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Body
要求の本文を指定します。 本文は、ヘッダーに続く要求の内容です。
本文の値 Invoke-RestMethod
をパイプでパイプすることもできます。
Body パラメーターを使用して、クエリ パラメーターの一覧を指定したり、応答の内容を指定したりできます。 クエリ パラメーターの場合、コマンドレットは System.Net.WebUtility.UrlEncode メソッド メソッドを使用してキーと値のペアをエンコードします。 URL のエンコード文字列の詳細については、UrlEncode() メソッドのリファレンスを参照してください。
入力が POST 要求で、本文が String の場合、最初の等号 (=
) の左側の値がフォーム データのキーとして設定され、残りのテキストが値として設定されます。 複数のキーを指定するには、Body にハッシュ テーブルなどの IDictionary オブジェクトを使用します。
入力が GET 要求で、本文が IDictionary (通常はハッシュ テーブル) の場合、本文はクエリ パラメーターとして URI に追加されます。 他の要求の種類 (PATCH など) の場合、本文は標準 name=value
形式の要求本文の値として設定され、値は URL でエンコードされます。
入力が System.Xml.Xml.XmlNode オブジェクトで、XML 宣言でエンコードが指定されている場合、そのエンコードは ContentType パラメーターによってオーバーライドされない限り、要求内のデータに使用されます。
本文がフォームの場合、または別 Invoke-WebRequest
の呼び出しの出力である場合、PowerShell は要求コンテンツをフォーム フィールドに設定します。
Body パラメーターは、System.Net.Http.MultipartFormDataContent オブジェクトを受け取ることもできます。 これにより、要求が容易になります multipart/form-data
。 Body に MultipartFormDataContent オブジェクトを指定すると、ContentType、Headers、または WebSession パラメーターに指定されたコンテンツ関連ヘッダーはすべて、オブジェクトのMultipartFormDataContent
コンテンツ ヘッダーによってオーバーライドされます。 この機能は PowerShell 6.0.0 で追加されました。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Certificate
セキュリティで保護された Web 要求に使用するクライアント証明書を指定します。 証明書が格納されている変数を入力するか、証明書を取得するコマンドまたは式を入力します。
証明書を検索するには、証明書 (Cert:
) ドライブでコマンドレットを使用Get-PfxCertificate
するか、コマンドレットを使用Get-ChildItem
します。 証明書が有効でない場合、または十分な権限を持っていない場合、コマンドは失敗します。
型: | X509Certificate |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CertificateThumbprint
要求を送信するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。
証明書は、クライアント証明書ベースの認証で使用されます。 証明書はローカル ユーザー アカウントにのみマップでき、ドメイン アカウントにはマップできません。
証明書の拇印を表示するには、またはGet-ChildItem
コマンドをGet-Item
使用して証明書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 パラメーターに置き換えられました。 ConnectionTimeoutSeconds のエイリアスとして TimeoutSec を使用できます。
型: | Int32 |
Aliases: | TimeoutSec |
配置: | Named |
規定値: | 0 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ContentType
Web 要求のコンテンツ タイプを指定します。
ContentType の値にエンコード形式 (ascharset
) が含まれている場合、コマンドレットはその形式を使用して Web 要求の本文をエンコードします。 ContentType でエンコード形式が指定されていない場合は、代わりに既定のエンコード形式が使用されます。 エンコード形式の ContentType の例としてtext/plain; charset=iso-8859-5
、ラテン/キリル文字のアルファベットを指定します。
このパラメーターを省略し、要求メソッドが POST の場合は、 Invoke-RestMethod
コンテンツ タイプ application/x-www-form-urlencoded
を . それ以外の場合、コンテンツ タイプは呼び出しで指定されません。
ContentType は、Body にオブジェクトがMultipartFormDataContent
指定されるとオーバーライドされます。
PowerShell 7.4 以降では、このパラメーターと Headers パラメーターの両方を使用してヘッダーを定義Content-Type
すると、ContentType パラメーターで指定された値が使用されます。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
要求を送信するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01 などのユーザー名を入力するか、コマンドレットによって生成された PSCredential オブジェクトをGet-Credential
入力します。
資格情報 は単独で使用することも、特定 の認証 パラメーター オプションと組み合わせて使用することもできます。 単独で使用すると、リモート サーバーが認証チャレンジ要求を送信した場合にのみ、資格情報がリモート サーバーに提供されます。 認証オプションと共に使用すると、資格情報が明示的に送信されます。
資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。
Note
SecureString データ保護の詳細については、「SecureString のセキュリティ保護方法」を参照してください。
型: | PSCredential |
配置: | Named |
規定値: | Current user |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CustomMethod
Web 要求に使用するカスタム メソッドを指定します。 これは、エンドポイントで必要な要求メソッドで使用できます。メソッドで使用できるオプションはありません。 メソッド と CustomMethod を一緒に使用することはできません。
例:
Invoke-RestMethod -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
これにより、 TEST
API への HTTP 要求が行われます。
この機能は PowerShell 6.0.0 で追加されました。
型: | String |
Aliases: | CM |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisableKeepAlive
コマンドレットが HTTP ヘッダーの KeepAlive 値を False に設定することを示します。 既定では、 KeepAlive は True です。 KeepAlive は、後続の要求を容易にするために、サーバーへの永続的な接続を確立します。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-FollowRelLink
コマンドレットが関係リンクに従う必要があることを示します。
一部の REST API では、RFC5988ごとの Relation Links による改ページがサポートされています。 ヘッダーを解析して次のページの URL を取得する代わりに、コマンドレットでこれを行うことができます。 リレーション リンクをフォローする回数を設定するには、MaximumFollowRelLink パラメーターを使用します。
このスイッチを使用すると、コマンドレットは結果のページのコレクションを返します。 結果の各ページには、複数の結果項目が含まれる場合があります。
この機能は PowerShell 6.0.0 で追加されました。
型: | SwitchParameter |
Aliases: | FL |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Form
ディクショナリを申請に multipart/form-data
変換します。 フォームは本文と共に使用できません。
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' }
値が Array や List などのコレクション型の場合、for フィールドは複数回送信されます。 リストの値は、既定で文字列として扱われます。 値が System.IO.FileInfo オブジェクトの場合、バイナリ ファイルの内容が送信されます。 入れ子になったコレクションはサポートされていません。
$Form = @{ tags = 'Vacation', 'Italy', '2017' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }
上記の例では、tags
フィールドはフォームに 3 回、それぞれ Vacation
Italy
1 回、および 2017
. このフィールドは pictures
、フォルダー内 2017-Italy
のファイルごとに 1 回送信されます。 そのフォルダー内のファイルのバイナリ コンテンツが値として送信されます。
この機能は、PowerShell 6.1.0 で追加されました。
型: | IDictionary |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Headers
Web 要求のヘッダーを指定します。 ハッシュ テーブルまたは辞書を入力します。
コンテンツ関連のヘッダー (Body にオブジェクトがMultipartFormDataContent
指定されるとオーバーライドされるなどContent-Type
)。
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 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InFile
ファイルから Web 要求の内容を取得します。
パスとファイル名を入力します。 パスを省略した場合、既定値は現在のディレクトリです。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaximumFollowRelLink
FollowRelLink を使用する場合に関係リンクをフォローする回数を指定します。 要求が多すぎるために REST API がスロットルされる場合は、より小さな値が必要になる場合があります。 既定値は [Int32]::MaxValue
です。 値が 0 (ゼロ) の場合、次の関係リンクは使用できません。
型: | Int32 |
Aliases: | ML |
配置: | Named |
規定値: | Int32.MaxValue |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-MaximumRedirection
接続が失敗するまでに、PowerShell が代替 Uniform Resource Identifier (URI) に接続をリダイレクトする回数を指定します。 既定値は 5 です。 値 0 (ゼロ) を指定した場合、リダイレクトはまったく行われません。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | 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
コマンドレットがプロキシを使用して宛先に到達しないことを示します。
Internet Explorer で構成されているプロキシ、または環境で指定されたプロキシをバイパスする必要がある場合は、このスイッチを使用します。
このパラメーターは、PowerShell 6.0 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OperationTimeoutSeconds
このタイムアウトは、ストリーム内のデータ読み取りに適用され、ストリーム時間全体には適用されません。 既定値の 0 は、無期限のタイムアウトを指定します。
値を 30 秒に設定すると、ストリーム内のデータ間で 30 秒を超える遅延が発生すると、要求が終了します。 ダウンロードに数分かかる大きなファイルは、ストリームが 30 秒を超えてストールしない限り終了しません。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OutFile
既定では、 Invoke-RestMethod
結果をパイプラインに返します。 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 |
規定値: | No output |
必須: | 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 (Uniform Resource Identifier) を入力します。
この機能は PowerShell 6.0.0 で追加されました。
型: | Uri |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProxyCredential
Proxy パラメーターで指定されたプロキシ サーバーを使用するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01 などのユーザー名を入力するか、User@Domain.Comコマンドレットによって生成されたオブジェクトなどのオブジェクトをGet-Credential
入力PSCredential
します。
このパラメーターは、Proxy パラメーターがコマンドでも使用されている場合にのみ有効です。 同じコマンドで ProxyCredential パラメーターと ProxyUseDefaultCredentials パラメーターを使用することはできません。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProxyUseDefaultCredentials
コマンドレットが現在のユーザーの資格情報を使用して、Proxy パラメーターで指定されたプロキシ サーバーにアクセスすることを示します。
このパラメーターは、Proxy パラメーターがコマンドでも使用されている場合にのみ有効です。 同じコマンドで ProxyCredential パラメーターと ProxyUseDefaultCredentials パラメーターを使用することはできません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ResponseHeadersVariable
応答ヘッダー ディクショナリを含む変数を作成します。 ドル記号 ($
) 記号を使用せずに変数名を入力します。 ディクショナリのキーには、Web サーバーによって返される応答ヘッダーのフィールド名と値が含まれます。
この機能は PowerShell 6.0.0 で追加されました。
型: | String |
Aliases: | RHV |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Resume
部分ファイルのダウンロードを再開するためのベスト エフォート試行を実行します。 Resume パラメーターには OutFile パラメーターが必要です。
再開 は、ローカル ファイルとリモート ファイルのサイズに対してのみ動作し、ローカル ファイルとリモート ファイルが同じであるという他の検証は実行しません。
ローカル ファイル サイズがリモート ファイル サイズよりも小さい場合、コマンドレットはファイルのダウンロードを再開し、残りのバイトをファイルの末尾に追加しようとします。
ローカル ファイル サイズがリモート ファイル サイズと同じ場合、アクションは実行されません。コマンドレットはダウンロードが既に完了していることを前提としています。
ローカル ファイル サイズがリモート ファイル サイズより大きい場合、ローカル ファイルは上書きされ、リモート ファイル全体が完全に再ダウンロードされます。 この動作は、再開なしで OutFile を使用する場合と同じです。
リモート サーバーがダウンロード再開をサポートしていない場合は、ローカル ファイルが上書きされ、リモート ファイル全体が完全に再ダウンロードされます。 この動作は、再開なしで OutFile を使用する場合と同じです。
ローカル ファイルが存在しない場合は、ローカル ファイルが作成され、リモート ファイル全体が完全にダウンロードされます。 この動作は、再開なしで OutFile を使用する場合と同じです。
この機能は、PowerShell 6.1.0 で追加されました。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-RetryIntervalSec
400 ~ 599 (304 を含む) のエラー コードを受信したときの接続の再試行間隔を指定します。 値は次の値の[int]::MaxValue
間1
である必要があります。
エラー コードが 429 で、応答に Retry-After プロパティがヘッダーに含まれている場合、このパラメーターが指定されている場合でも、コマンドレットはその値を再試行間隔に使用します。
また、再試行回数の 指定については、MaximumRetryCount パラメーターを参照してください。
型: | Int32 |
配置: | Named |
規定値: | 5 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SessionVariable
Web 要求セッションを含む変数を作成します。 ドル記号 ($
) 記号を使用せずに変数名を入力します。
セッション変数を指定する場合は、 Invoke-RestMethod
Web 要求セッション オブジェクトを作成し、PowerShell セッションで指定した名前の変数に割り当てます。 コマンドが完了すると、すぐに変数をセッションで使用できます。
PowerShell 7.4 より前では、Web 要求セッションは永続的な接続ではありません。 これは、Cookie、資格情報、最大リダイレクト値、ユーザー エージェント文字列など、接続と要求に関する情報を含むオブジェクトです。 Web 要求セッションを使用して、Web 要求の間で状態とデータを共有することができます。
PowerShell 7.4 以降では、後続の要求でセッションのプロパティがオーバーライドされない限り、Web 要求セッションは永続的です。 その場合、コマンドレットは新しい値を使用してセッションを再作成します。 永続的なセッションにより、要求の繰り返しのオーバーヘッドが軽減され、はるかに高速になります。
後続の Web 要求で Web 要求セッションを使用するには、WebSession パラメーターの値にセッション変数を指定します。 PowerShell では、新しい接続を確立するときに、Web 要求セッション オブジェクトのデータが使用されます。 Web 要求セッションの値をオーバーライドするには、UserAgent や Credential などのコマンドレット パラメーターを使用します。 パラメーターの値は、Web 要求セッションの値よりも優先されます。
同じコマンドで SessionVariable パラメーターと WebSession パラメーターを使用することはできません。
型: | String |
Aliases: | SV |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipCertificateCheck
有効期限、失効、信頼されたルート機関など、すべての検証を含む証明書検証チェックをスキップします。
警告
このパラメーターの使用は安全ではなく、推奨されません。 このスイッチは、テスト目的で自己署名証明書を使用して既知のホストに対してのみ使用することを目的としています。 ご自身の責任で使用してください。
この機能は PowerShell 6.0.0 で追加されました。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SkipHeaderValidation
コマンドレットが検証なしで要求にヘッダーを追加する必要があることを示します。
このスイッチは、標準に準拠していないヘッダー値を必要とするサイトに使用する必要があります。 このスイッチを指定すると、検証が無効になり、値をオフに渡すことができます。 指定すると、すべてのヘッダーが検証なしで追加されます。
これにより、ContentType、Headers、および 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, Tls13 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-StatusCodeVariable
要求の HTTP 状態コードの結果を含む変数を作成します。 ドル記号 ($
) 記号を使用せずに変数名を入力します。
このパラメーターは、SkipHttpErrorCheck パラメーターと共に使用すると、成功メッセージまたは失敗メッセージを識別できます。
パラメーターの変数名を次のような -StatusCodeVariable "scv"
文字列として入力します。
このパラメーターは PowerShell 7 で導入されました。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Token
要求に含める OAuth またはベアラー トークン。 トークン は、特定 の認証 オプションで必要です。 個別に使用することはできません。
トークンは、トークン を SecureString
含む A を受け取ります。 トークンを指定するには、次のコマンドを手動で使用します。
Invoke-RestMethod -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
このパラメーターは、PowerShell 6.0 で導入されました。
型: | SecureString |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-TransferEncoding
転送エンコード HTTP 応答ヘッダーの値を指定します。 このパラメーターの有効値は、次のとおりです。
- チャンク
- 圧縮
- Deflate
- GZip
- ID
型: | String |
指定可能な値: | chunked, compress, deflate, gzip, identity |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UnixSocket
接続先の Unix ソケットの名前を指定します。 このパラメーターは、Unix ベースのシステムおよび Windows バージョン 1803 以降でサポートされています。 Unix ソケットの Windows サポートの詳細については、 ブログ記事で Windows/WSL 相互運用機能AF_UNIX 参照してください。
このパラメーターは PowerShell 7.4 で追加されました。
型: | UnixDomainSocketEndPoint |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Uri
Web 要求の送信先となるインターネット リソースの URI (Uniform Resource Identifier) を指定します。 このパラメーターは、HTTP、HTTPS、FTP、FILE の値をサポートします。
このパラメーターは必須です。 パラメーター名 (Uri) は省略可能です。
型: | Uri |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseBasicParsing
このパラメーターは非推奨になりました。 PowerShell 6.0.0 以降では、すべての Web 要求で基本的な解析のみが使用されます。 このパラメーターは下位互換性のためにのみ含まれており、このパラメーターを使用してもコマンドレットの操作には影響しません。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseDefaultCredentials
コマンドレットが現在のユーザーの資格情報を使用して Web 要求を送信することを示します。 これは認証または資格情報では使用できません。また、すべてのプラットフォームでサポートされているわけではありません。
型: | 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 クラスのプロパティを使用します。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WebSession
Web 要求セッションを指定します。 ドル記号 ($
) を含む変数名を入力します。
Web 要求セッションの値をオーバーライドするには、UserAgent や Credential などのコマンドレット パラメーターを使用します。 パラメーターの値は、Web 要求セッションの値よりも優先されます。 Body に MultipartFormDataContent オブジェクトを指定すると、コンテンツ関連のヘッダー (例Content-Type
: ) もオーバーライドされます。
リモート セッションとは異なり、Web 要求セッションは永続的な接続ではありません。 これは、Cookie、資格情報、最大リダイレクト値、ユーザー エージェント文字列など、接続と要求に関する情報を含むオブジェクトです。 Web 要求セッションを使用して、Web 要求の間で状態とデータを共有することができます。
Web 要求セッションを作成するには、コマンドの SessionVariable パラメーターの値に、ドル記号なしで変数名をInvoke-RestMethod
入力します。 Invoke-RestMethod
はセッションを作成し、変数に保存します。 後続のコマンドでは、変数を WebSession パラメーターの値として使用します。
同じコマンドで SessionVariable パラメーターと WebSession パラメーターを使用することはできません。
型: | WebRequestSession |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
Web 要求の本文をこのコマンドレットにパイプできます。
出力
要求から整数が返されると、このコマンドレットはその整数を返します。
要求が文字列を返すと、このコマンドレットはその文字列を返します。
要求が有効な XML を返すと、このコマンドレットは XMLDocument として 返します。
PSObject
要求が JSON 文字列を返すと、このコマンドレットはデータを 表す PSObject を 返します。
メモ
PowerShell には、次のエイリアスが Invoke-RestMethod
含まれています。
- すべてのプラットフォーム:
irm
一部の機能は、すべてのプラットフォームで利用できない場合があります。
.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 要求と HTTPS 要求で使用されるプロキシ サーバーのホスト名または IP アドレス(ケースまたはHTTPS_PROXY
定義されていない場合HTTP_PROXY
)。NO_PROXY
: プロキシから除外するホスト名のコンマ区切りの一覧。
PowerShell 7.4 では、Brotli 圧縮アルゴリズムのサポートが追加されました。
関連リンク
PowerShell