ค้นหาเว็บไซต์

เรียกใช้-RestMethod (Microsoft.PowerShell.Utility)


Invoke-RestMethod

โมดูล :
Microsoft.PowerShell.Utility

ส่งคำขอ HTTP หรือ HTTPS ไปยังบริการเว็บ RESTful

ไวยากรณ์

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>]

คำอธิบาย

cmdlet Invoke-RestMethod จะส่งคำขอ HTTP และ HTTPS ไปยังบริการเว็บ Representational State Transfer (REST) ที่ส่งคืนข้อมูลที่มีโครงสร้างครบถ้วน

PowerShell จัดรูปแบบการตอบสนองตามชนิดข้อมูล สำหรับฟีด RSS หรือ ATOM PowerShell ส่งคืนโหนด XML รายการหรือรายการ สำหรับ JavaScript Object Notation (JSON) หรือ XML นั้น PowerShell จะแปลงหรือดีซีเรียลไลซ์เนื้อหาเป็นอ็อบเจ็กต์ [PSCustomObject]

บันทึก

เมื่อจุดสิ้นสุด REST ส่งคืนออบเจ็กต์หลายรายการ ออบเจ็กต์จะได้รับเป็นอาร์เรย์ หากคุณไพพ์เอาต์พุตจาก Invoke-RestMethod ไปยังคำสั่งอื่น เอาต์พุตนั้นจะถูกส่งเป็นอ็อบเจ็กต์ [Object[]] เดียว เนื้อหาของอาร์เรย์นั้นไม่ได้แจกแจงสำหรับคำสั่งถัดไปบนไปป์ไลน์

cmdlet นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

เริ่มต้นใน PowerShell 7.0 Inrigger-RestMethod รองรับการกำหนดค่าพร็อกซีที่กำหนดโดยตัวแปรสภาพแวดล้อม ดูส่วนหมายเหตุของบทความนี้

เริ่มต้นใน PowerShell 7.4 การเข้ารหัสอักขระสำหรับคำขอจะมีค่าเริ่มต้นเป็น UTF-8 แทนที่จะเป็น ASCII หากคุณต้องการการเข้ารหัสอื่น คุณต้องตั้งค่าแอตทริบิวต์ charset ในส่วนหัว Content-Type

ตัวอย่าง

ตัวอย่างที่ 1: รับฟีด RSS ของ PowerShell

ตัวอย่างนี้ใช้ cmdlet Invoke-RestMethod เพื่อรับข้อมูลจากฟีด RSS ของบล็อก PowerShell คำสั่งใช้ Format-Table cmdlet เพื่อแสดงค่าของคุณสมบัติ 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

ในตัวอย่างนี้ ผู้ใช้รัน Inrigger-RestMethod เพื่อทำการร้องขอ POST บนเว็บไซต์อินทราเน็ตในองค์กรของผู้ใช้

$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 เป็นโหมดเอาต์พุต และระบุช่วงเวลาสำหรับข้อมูลที่ส่งคืนซึ่งเริ่มต้นเมื่อสองวันก่อนและสิ้นสุดเมื่อหนึ่งวันก่อน ตัวแปรเนื้อหาระบุค่าสำหรับพารามิเตอร์ที่ใช้กับ REST API เฉพาะที่ Inrigger-RestMethod กำลังสื่อสารอยู่

คำสั่ง Inrigger-RestMethod จะทำงานพร้อมกับตัวแปรทั้งหมด โดยระบุเส้นทางและชื่อไฟล์สำหรับไฟล์เอาต์พุต CSV ที่เป็นผลลัพธ์

ตัวอย่างที่ 3: ติดตามลิงก์ความสัมพันธ์

REST API บางตัวรองรับการแบ่งหน้าผ่าน Relation Links ตาม RFC5988 แทนที่จะแยกวิเคราะห์ส่วนหัวเพื่อรับ URL สำหรับหน้าถัดไป คุณสามารถให้ cmdlet ดำเนินการนี้ให้กับคุณได้ ตัวอย่างนี้ส่งคืนสองหน้าแรกของปัญหาจากที่เก็บ PowerShell GitHub

$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 และ งานอดิเรก API คาดหวังว่าจะมีการระบุรูปภาพสำหรับรูปโปรไฟล์ผู้ใช้ในช่อง avatar API ยังยอมรับรายการ งานอดิเรก หลายรายการที่จะส่งในแบบฟอร์มเดียวกัน

เมื่อสร้าง $Form HashTable ชื่อคีย์จะถูกใช้เป็นชื่อฟิลด์ของฟอร์ม ตามค่าเริ่มต้น ค่าของ HashTable จะถูกแปลงเป็นสตริง หากมีค่า System.IO.FileInfo เนื้อหาไฟล์จะถูกส่ง หากมีคอลเลกชัน เช่น อาร์เรย์หรือรายการ ฟิลด์แบบฟอร์มจะถูกส่งหลายครั้ง

เมื่อใช้ Get-Item บนคีย์ avatar ออบเจ็กต์ FileInfo จะถูกตั้งค่าเป็นค่า ผลลัพธ์คือข้อมูลรูปภาพสำหรับ jdoe.png จะถูกส่งไป

โดยการระบุรายการให้กับคีย์ งานอดิเรก ฟิลด์ งานอดิเรก จะปรากฏในการส่งหนึ่งครั้งสำหรับแต่ละรายการในรายการ

ตัวอย่างที่ 5: ส่งหลายส่วนหัว

API มักต้องใช้ส่วนหัวที่ส่งผ่านสำหรับการตรวจสอบสิทธิ์หรือการตรวจสอบความถูกต้อง ตัวอย่างนี้สาธิตวิธีการส่งหลายส่วนหัวจาก hash-table ไปยัง REST API

$headers = @{
    'userId' = 'UserIDValue'
    'token' = 'TokenValue'
}
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body

ตัวอย่างที่ 6: แจงนับสินค้าที่ส่งคืนในไปป์ไลน์

GitHub ส่งคืนวัตถุหลายรายการในอาร์เรย์ หากคุณไพพ์เอาต์พุตไปยังคำสั่งอื่น เอาต์พุตนั้นจะถูกส่งเป็นอ็อบเจ็กต์ [Object[]] เดียว

หากต้องการระบุวัตถุลงในไปป์ไลน์ ให้ไปป์ผลลัพธ์ไปที่ Write-Output หรือล้อม cmdlet ไว้ในวงเล็บ ตัวอย่างต่อไปนี้นับจำนวนอ็อบเจ็กต์ที่ส่งคืนโดย 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: การข้ามการตรวจสอบส่วนหัว

ตามค่าเริ่มต้น cmdlet 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 เป็นบริการที่ส่งคืนข้อมูลเกี่ยวกับคำขอทางเว็บและการตอบกลับสำหรับการแก้ไขปัญหา ตัวแปร $Uri ถูกกำหนดให้กับปลายทาง /headers ของบริการ ซึ่งส่งคืนส่วนหัวของคำขอเป็นเนื้อหาในการตอบกลับ

ส่วนหัวคำขอ If-Match ถูกกำหนดไว้ใน RFC-7232 ส่วน 3.1 และต้องการให้กำหนดค่าสำหรับส่วนหัวนั้นด้วยเครื่องหมายคำพูดโดยรอบ ตัวแปร $InvalidHeaders ได้รับการกำหนดตารางแฮช โดยที่ค่าของ If-Match ไม่ถูกต้อง เนื่องจากถูกกำหนดเป็น 12345 แทนที่จะเป็น " 12345".

การเรียก Invoke-RestMethod ด้วยส่วนหัวที่ไม่ถูกต้องจะส่งคืนข้อผิดพลาดในการรายงานว่าค่าที่จัดรูปแบบไม่ถูกต้อง คำขอไม่ได้ถูกส่งไปยังปลายทาง

การเรียก Inrigger-RestMethod ด้วยพารามิเตอร์ SkipHeaderValidation จะละเว้นความล้มเหลวในการตรวจสอบและส่งคำขอไปยังปลายทาง เนื่องจากจุดสิ้นสุดยอมรับค่าส่วนหัวที่ไม่เข้ากัน cmdlet จึงส่งกลับวัตถุตอบสนองโดยไม่มีข้อผิดพลาด

ตัวอย่างที่ 8: ส่งคำขอโดยใช้ HTTP 2.0

ตัวอย่างนี้สอบถามปัญหา GitHub โดยใช้โปรโตคอล HTTP 2.0

$uri = 'https://api.github.com/repos/microsoftdocs/powershell-docs/issues'
Invoke-RestMethod -Uri $uri -HttpVersion 2.0 -SkipCertificateCheck

ตัวอย่างที่ 9: ส่งคำขอไปยังแอปพลิเคชันซ็อกเก็ต Unix

แอปพลิเคชั่นบางตัว เช่น Docker เปิดเผยซ็อกเก็ต Unix สำหรับการสื่อสาร ตัวอย่างนี้ค้นหารายการอิมเมจ Docker โดยใช้ Docker API cmdlet เชื่อมต่อกับ Docker daemon โดยใช้ซ็อกเก็ต Unix

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

พารามิเตอร์

-AllowInsecureRedirect

อนุญาตให้เปลี่ยนเส้นทางจาก HTTPS เป็น HTTP ตามค่าเริ่มต้น คำขอใดๆ ที่เปลี่ยนเส้นทางจาก HTTPS ไปยัง HTTP จะส่งผลให้เกิดข้อผิดพลาด และคำขอจะถูกยกเลิกเพื่อป้องกันการสื่อสารในรูปแบบข้อความธรรมดาผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัสโดยไม่ได้ตั้งใจ หากต้องการแทนที่พฤติกรรมนี้ด้วยความเสี่ยงของคุณเอง ให้ใช้พารามิเตอร์ AllowInsecureRedirect

พารามิเตอร์นี้ถูกเพิ่มใน PowerShell 7.4

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-AllowUnencryptedAuthentication

อนุญาตให้ส่งข้อมูลรับรองและความลับผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัส ตามค่าเริ่มต้น การระบุ ข้อมูลรับรอง หรือตัวเลือก การตรวจสอบสิทธิ์ ใดๆ ด้วย Uri ที่ไม่ได้ขึ้นต้นด้วย https:// จะ ส่งผลให้เกิดข้อผิดพลาดและการร้องขอจะถูกยกเลิกเพื่อป้องกันการสื่อสารความลับในรูปแบบข้อความธรรมดาผ่านการเชื่อมต่อที่ไม่ได้เข้ารหัสโดยไม่ได้ตั้งใจ หากต้องการแทนที่พฤติกรรมนี้ด้วยความเสี่ยงของคุณเอง ให้ระบุพารามิเตอร์ AllowUnencryptedAuthentication

คำเตือน

การใช้พารามิเตอร์นี้ไม่ปลอดภัยและไม่แนะนำ มีให้เฉพาะเพื่อความเข้ากันได้กับระบบเดิมที่ไม่สามารถให้การเชื่อมต่อที่เข้ารหัสได้ ใช้ความเสี่ยงของคุณเอง

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Authentication

ระบุประเภทการรับรองความถูกต้องที่ชัดเจนที่จะใช้สำหรับการร้องขอ ค่าเริ่มต้นคือ ไม่มี พารามิเตอร์ การตรวจสอบสิทธิ์ ไม่สามารถใช้กับพารามิเตอร์ UseDefaultCredentials

ตัวเลือกการรับรองความถูกต้องที่ใช้ได้:

  • ไม่มี: นี่คือตัวเลือกเริ่มต้นเมื่อไม่ได้ระบุ การรับรองความถูกต้อง จะไม่มีการใช้การรับรองความถูกต้องที่ชัดเจน
  • พื้นฐาน: ต้องมี ข้อมูลรับรอง ข้อมูลประจำตัวจะถูกใช้เพื่อส่งส่วนหัว Authorization: Basic การตรวจสอบสิทธิ์ขั้นพื้นฐาน RFC 7617 ในรูปแบบ base64(user:password)
  • ผู้ถือ: ต้องมีพารามิเตอร์ โทเค็น ส่งส่วนหัว Authorization: Bearer RFC 6750 พร้อมด้วยโทเค็นที่ให้มา
  • OAuth: ต้องใช้พารามิเตอร์ Token ส่งส่วนหัว Authorization: Bearer RFC 6750 พร้อมด้วยโทเค็นที่ให้มา

การจัดหา การตรวจสอบสิทธิ์ จะแทนที่ส่วนหัว การอนุญาต ใดๆ ที่จัดหาให้กับ ส่วนหัว หรือรวมอยู่ใน WebSession

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

WebAuthenticationType

ค่าที่ยอมรับ:

ไม่มี, พื้นฐาน, ผู้ถือ, OAuth

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Body

ระบุเนื้อความของการร้องขอ เนื้อความคือเนื้อหาของคำขอที่ตามหลังส่วนหัว คุณยังสามารถไพพ์ค่าเนื้อหาไปที่ Invoke-RestMethod

พารามิเตอร์ เนื้อหา สามารถใช้เพื่อระบุรายการพารามิเตอร์การค้นหาหรือระบุเนื้อหาของการตอบกลับ สำหรับพารามิเตอร์การสืบค้น cmdlet ใช้วิธีการเมธอด System.Net.WebUtility.UrlEncode เพื่อเข้ารหัสคู่คีย์-ค่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัสสตริงสำหรับ URL ดูการอ้างอิงเมธอด UrlEncode()

เมื่ออินพุตเป็นคำขอ POST และเนื้อหาเป็น สตริง ค่าทางด้านซ้ายของเครื่องหมายเท่ากับตัวแรก (=) จะถูกตั้งค่าเป็นคีย์ในข้อมูลแบบฟอร์ม และข้อความที่เหลือจะถูกตั้งค่าเป็นค่า หากต้องการระบุหลายคีย์ ให้ใช้ออบเจ็กต์ IDictionary เช่น ตารางแฮช สำหรับ เนื้อหา

เมื่ออินพุตเป็นคำขอ GET และเนื้อหาเป็น IDictionary (โดยทั่วไปคือตารางแฮช) เนื้อหาจะถูกเพิ่มใน URI เป็นพารามิเตอร์การค้นหา สำหรับคำขอประเภทอื่นๆ (เช่น PATCH) เนื้อความจะถูกตั้งค่าเป็นค่าของเนื้อความคำขอในรูปแบบ name=value มาตรฐานพร้อมค่าที่เข้ารหัส URL

เมื่ออินพุตเป็นออบเจ็กต์ System.Xml.XmlNode และการประกาศ XML ระบุการเข้ารหัส การเข้ารหัสนั้นจะใช้สำหรับข้อมูลในคำขอ เว้นแต่จะถูกแทนที่โดยพารามิเตอร์ ContentType

เมื่อเนื้อหาเป็นรูปแบบหรือเป็นผลลัพธ์ของการเรียก Intake-WebRequest อื่น PowerShell จะตั้งค่าเนื้อหาคำขอเป็นช่องแบบฟอร์ม

พารามิเตอร์ Body ยังอาจยอมรับออบเจ็กต์ System.Net.Http.MultipartFormDataContent อีกด้วย สิ่งนี้จะอำนวยความสะดวกในการร้องขอ multipart/form-data เมื่อมีการระบุออบเจ็กต์ MultipartFormDataContent สำหรับ เนื้อหา ส่วนหัวที่เกี่ยวข้องกับเนื้อหาใดๆ ที่จัดหาให้กับ ContentType, ส่วนหัว หรือ < พารามิเตอร์WebSession จะถูกแทนที่โดยส่วนหัวเนื้อหาของออบเจ็กต์ MultipartFormDataContent คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

วัตถุ

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-Certificate

ระบุใบรับรองไคลเอ็นต์ที่ใช้สำหรับคำขอเว็บที่ปลอดภัย ป้อนตัวแปรที่มีใบรับรองหรือคำสั่งหรือนิพจน์ที่ได้รับใบรับรอง

หากต้องการค้นหาใบรับรอง ให้ใช้ Get-PfxCertificate หรือใช้ Get-ChildItem cmdlet ในไดรฟ์ Certificate (Cert:) หากใบรับรองไม่ถูกต้องหรือมีสิทธิ์ไม่เพียงพอ คำสั่งจะล้มเหลว

พิมพ์ :

ใบรับรอง X509

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-CertificateThumbprint

ระบุใบรับรองคีย์สาธารณะดิจิทัล (X509) ของบัญชีผู้ใช้ที่มีสิทธิ์ในการส่งคำขอ ป้อนรหัสประจำตัวใบรับรองของใบรับรอง

ใบรับรองใช้ในการตรวจสอบความถูกต้องตามใบรับรองไคลเอ็นต์ ใบรับรองสามารถแมปกับบัญชีผู้ใช้ภายในเครื่องเท่านั้น ไม่ใช่บัญชีโดเมน

หากต้องการดูรหัสประจำตัวของใบรับรอง ให้ใช้คำสั่ง Get-Item หรือ Get-ChildItem เพื่อค้นหาใบรับรองใน Cert:\CurrentUser\My

บันทึก

ปัจจุบันฟีเจอร์นี้รองรับบนแพลตฟอร์ม Windows OS เท่านั้น

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-ConnectionTimeoutSeconds

ระบุระยะเวลาที่คำขอสามารถรอดำเนินการได้ก่อนที่จะหมดเวลา ป้อนค่าเป็นวินาที ค่าเริ่มต้น 0 ระบุการหมดเวลาไม่มีกำหนด

แบบสอบถามระบบชื่อโดเมน (DNS) อาจใช้เวลาถึง 15 วินาทีในการส่งคืนหรือหมดเวลา หากคำขอของคุณมีชื่อโฮสต์ที่ต้องมีการแก้ไข และคุณตั้งค่า ConnectionTimeoutSeconds ให้เป็นค่าที่มากกว่าศูนย์ แต่น้อยกว่า 15 วินาที อาจใช้เวลา 15 วินาทีหรือมากกว่านั้นก่อน WebException ถูกโยนทิ้ง และคำขอของคุณหมดเวลา

พารามิเตอร์นี้แทนที่พารามิเตอร์ TimeoutSec ใน PowerShell 7.4 คุณสามารถใช้ TimeoutSec เป็นนามแฝงสำหรับ ConnectionTimeoutSeconds

พิมพ์ :

Int32

นามแฝง :

TimeoutSec

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

0

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-ContentType

ระบุประเภทเนื้อหาของคำขอเว็บ

หากค่าสำหรับ ContentType มีรูปแบบการเข้ารหัส (เป็น charset) cmdlet จะใช้รูปแบบนั้นในการเข้ารหัสเนื้อหาของคำขอเว็บ หาก ContentType ไม่ได้ระบุรูปแบบการเข้ารหัส ระบบจะใช้รูปแบบการเข้ารหัสเริ่มต้นแทน ตัวอย่างของ ContentType ที่มีรูปแบบการเข้ารหัสคือ text/plain; charset=iso-8859-5 ซึ่งระบุตัวอักษรละติน/ซีริลลิก

หากละเว้นพารามิเตอร์นี้และวิธีการร้องขอคือ POST Invoke-RestMethod จะตั้งค่าประเภทเนื้อหาเป็น application/x-www-form-urlencoded มิฉะนั้น จะไม่มีการระบุประเภทเนื้อหาในการโทร

ContentType จะถูกแทนที่เมื่อมีการระบุออบเจ็กต์ MultipartFormDataContent สำหรับ Body

เริ่มต้นใน PowerShell 7.4 หากคุณใช้ทั้งพารามิเตอร์นี้และพารามิเตอร์ ส่วนหัว เพื่อกำหนดส่วนหัว Content-Type ค่าที่ระบุใน ContentType มีการใช้พารามิเตอร์

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Credential

ระบุบัญชีผู้ใช้ที่มีสิทธิ์ในการส่งคำขอ ค่าเริ่มต้นคือผู้ใช้ปัจจุบัน

พิมพ์ชื่อผู้ใช้ เช่น User01 หรือ Domain01\User01 หรือป้อนวัตถุ PSCredential ที่สร้างโดย Get-Credential รหัส> cmdlet.

ข้อมูลรับรอง สามารถใช้เพียงลำพังหรือใช้ร่วมกับตัวเลือกพารามิเตอร์ การตรวจสอบสิทธิ์ บางตัวได้ เมื่อใช้เพียงอย่างเดียว จะให้ข้อมูลประจำตัวแก่เซิร์ฟเวอร์ระยะไกลเท่านั้นหากเซิร์ฟเวอร์ระยะไกลส่งคำขอท้าทายการรับรองความถูกต้อง เมื่อใช้กับตัวเลือกการตรวจสอบสิทธิ์ ข้อมูลประจำตัวจะถูกส่งอย่างชัดเจน

ข้อมูลประจำตัวจะถูกจัดเก็บไว้ในวัตถุ PSCredential และรหัสผ่านจะถูกจัดเก็บเป็น SecureString

บันทึก

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปกป้องข้อมูล SecureString โปรดดู SecureString มีความปลอดภัยเพียงใด

พิมพ์ :

PSCredential

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

ผู้ใช้ปัจจุบัน

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-CustomMethod

ระบุวิธีการแบบกำหนดเองที่ใช้สำหรับคำขอเว็บ สามารถใช้กับวิธีการร้องขอที่ปลายทางกำหนดได้ ไม่ใช่ตัวเลือกที่มีอยู่ในวิธีการ วิธีการ และ วิธีการกำหนดเอง ไม่สามารถใช้ร่วมกันได้

ตัวอย่าง :

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

สิ่งนี้ทำให้คำขอ HTTP TEST ไปยัง API

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

String

นามแฝง :

CM

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-DisableKeepAlive

บ่งชี้ว่า cmdlet ตั้งค่า KeepAlive ในส่วนหัว HTTP เป็น False ตามค่าเริ่มต้น KeepAlive จะเป็น True KeepAlive สร้างการเชื่อมต่อแบบถาวรไปยังเซิร์ฟเวอร์เพื่ออำนวยความสะดวกในการร้องขอในภายหลัง

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-FollowRelLink

บ่งชี้ว่า cmdlet ควรเป็นไปตามลิงก์ที่เกี่ยวข้อง

REST API บางตัวรองรับการแบ่งหน้าผ่าน Relation Links ตาม RFC5988 แทนที่จะแยกวิเคราะห์ส่วนหัวเพื่อรับ URL สำหรับหน้าถัดไป คุณสามารถให้ cmdlet ดำเนินการนี้ให้กับคุณได้ หากต้องการกำหนดจำนวนครั้งในการติดตามลิงก์ที่เกี่ยวข้อง ให้ใช้พารามิเตอร์ MaximumFollowRelLink

เมื่อใช้สวิตช์นี้ cmdlet จะส่งกลับชุดของหน้าผลลัพธ์ ผลลัพธ์แต่ละหน้าอาจมีรายการผลลัพธ์หลายรายการ

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

SwitchParameter

นามแฝง :

FL

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Form

แปลงพจนานุกรมเป็นการส่ง multipart/form-data แบบฟอร์ม ไม่สามารถใช้กับ เนื้อหา หาก ContentType จะถูกละเว้น

ปุ่มของพจนานุกรมจะถูกใช้เป็นชื่อฟิลด์ของแบบฟอร์ม ตามค่าเริ่มต้น ค่าแบบฟอร์มจะถูกแปลงเป็นค่าสตริง

หากค่าเป็นอ็อบเจ็กต์ System.IO.FileInfo เนื้อหาไฟล์ไบนารีจะถูกส่งไป ชื่อของไฟล์จะถูกส่งเป็น ชื่อไฟล์ MIME จะถูกตั้งค่าเป็น application/octet-stream Get-Item สามารถใช้เพื่อทำให้การจัดหาอ็อบเจ็กต์ System.IO.FileInfo ง่ายขึ้น

$Form=@{ resume=รับรายการ 'c:\Users\jdoe\Documents\John Doe.pdf' }

หากค่าเป็นประเภทคอลเลกชัน เช่น อาร์เรย์หรือรายการ ฟิลด์ for จะถูกส่งหลายครั้ง ค่าของรายการจะถือเป็นสตริงตามค่าเริ่มต้น หากค่าเป็นอ็อบเจ็กต์ System.IO.FileInfo เนื้อหาไฟล์ไบนารีจะถูกส่งไป ไม่รองรับคอลเลกชันที่ซ้อนกัน

$Form=@{ tags='วันหยุด', 'อิตาลี', '2017' รูปภาพ=Get-ChildItem 'c:\Users\jdoe\Pictures\2017-อิตาลี' }

ในตัวอย่างข้างต้น ฟิลด์ แท็ก จะถูกระบุสามครั้งในแบบฟอร์ม หนึ่งครั้งสำหรับแต่ละ Vacation, Italy และ 2017. นอกจากนี้ ฟิลด์ รูปภาพ จะถูกส่งเพียงครั้งเดียวสำหรับแต่ละไฟล์ในโฟลเดอร์ 2017-Italy เนื้อหาไบนารีของไฟล์ในโฟลเดอร์นั้นจะถูกส่งเป็นค่า

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.1.0

พิมพ์ :

พจนานุกรม

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Headers

ระบุส่วนหัวของคำขอเว็บ ป้อนตารางแฮชหรือพจนานุกรม

ส่วนหัวที่เกี่ยวข้องกับเนื้อหา เช่น Content-Type จะถูกแทนที่เมื่อมีการระบุออบเจ็กต์ MultipartFormDataContent สำหรับ Body

เริ่มต้นใน PowerShell 7.4 หากคุณใช้พารามิเตอร์นี้เพื่อกำหนดส่วนหัว Content-Type และใช้พารามิเตอร์ ContentType ค่าที่ระบุในพารามิเตอร์ ContentType ถูกนำมาใช้

พิมพ์ :

พจนานุกรม

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-HttpVersion

ระบุเวอร์ชัน HTTP ที่ใช้สำหรับคำขอ ค่าเริ่มต้นคือ 1.1

ค่าที่ถูกต้องคือ:

  • 1.0
  • 1.1
  • 2.0
  • 3.0
พิมพ์ :

เวอร์ชัน

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-InFile

รับเนื้อหาของคำขอเว็บจากไฟล์

ป้อนเส้นทางและชื่อไฟล์ หากคุณละเว้นเส้นทาง ค่าเริ่มต้นจะเป็นตำแหน่งปัจจุบัน

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-MaximumFollowRelLink

ระบุจำนวนครั้งในการติดตามลิงก์ที่เกี่ยวข้องหากใช้ FollowRelLink อาจจำเป็นต้องใช้ค่าที่น้อยลงหาก REST API ควบคุมปริมาณเนื่องจากมีคำขอมากเกินไป ค่าเริ่มต้นคือ [Int32]::MaxValue ค่า 0 (ศูนย์) ป้องกันไม่ให้ติดตามลิงก์ความสัมพันธ์

พิมพ์ :

Int32

นามแฝง :

ML

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

Int32.MaxValue

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-MaximumRedirection

ระบุจำนวนครั้งที่ PowerShell เปลี่ยนเส้นทางการเชื่อมต่อไปยัง Uniform Resource Identifier (URI) สำรองก่อนที่การเชื่อมต่อจะล้มเหลว ค่าเริ่มต้นคือ 5 ค่า 0 (ศูนย์) ป้องกันการเปลี่ยนเส้นทางทั้งหมด

พิมพ์ :

Int32

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-MaximumRetryCount

ระบุจำนวนครั้งที่ PowerShell พยายามเชื่อมต่ออีกครั้งเมื่อได้รับรหัสความล้มเหลวระหว่าง 400 ถึง 599 รวมหรือ 304 นอกจากนี้ โปรดดูพารามิเตอร์ RetryIntervalSec เพื่อระบุจำนวนวินาทีระหว่างการลองใหม่

พิมพ์ :

Int32

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Method

ระบุวิธีการที่ใช้สำหรับการร้องขอเว็บ ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

    Default
    Delete
    Get
    Head
    Merge
    Options
    Patch
    Post
    Put
    Trace

พารามิเตอร์ CustomMethod สามารถใช้กับวิธีการร้องขอที่ไม่ได้ระบุไว้ข้างต้น

พิมพ์ :

วิธีการขอเว็บ

ค่าที่ยอมรับ:

ค่าเริ่มต้น, รับ, หัว, โพสต์, วาง, ลบ, ติดตาม, ตัวเลือก, ผสาน, แพตช์

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-NoProxy

บ่งชี้ว่า cmdlet จะไม่ใช้พร็อกซีเพื่อไปยังปลายทาง

เมื่อคุณต้องการข้ามพร็อกซีที่กำหนดค่าใน Internet Explorer หรือพร็อกซีที่ระบุในสภาพแวดล้อม ให้ใช้สวิตช์นี้

พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 6.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-OperationTimeoutSeconds

การหมดเวลานี้ใช้กับข้อมูลที่อ่านภายในสตรีม ไม่ใช่กับเวลาสตรีมโดยรวม ค่าเริ่มต้น 0 ระบุการหมดเวลาไม่มีกำหนด

การตั้งค่าเป็น 30 วินาทีหมายความว่าความล่าช้าใดๆ ที่นานกว่า 30 วินาทีระหว่างข้อมูลในสตรีมจะยุติคำขอ ไฟล์ขนาดใหญ่ที่ใช้เวลาดาวน์โหลดหลายนาทีจะไม่ยุติลง เว้นแต่สตรีมจะหยุดนานกว่า 30 วินาที

พิมพ์ :

Int32

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-OutFile

ตามค่าเริ่มต้น Invoke-RestMethod จะส่งกลับผลลัพธ์ไปยังไปป์ไลน์ เมื่อคุณใช้พารามิเตอร์ OutFile ผลลัพธ์จะถูกบันทึกลงในไฟล์ที่ระบุและจะไม่ส่งคืนไปยังไปป์ไลน์ ป้อนเส้นทางและชื่อไฟล์ หากต้องการส่งผลลัพธ์ไปยังไฟล์และไปป์ไลน์ ให้เพิ่มพารามิเตอร์ Passthru

หากคุณละเว้นเส้นทาง ค่าเริ่มต้นจะเป็นตำแหน่งปัจจุบัน ชื่อนี้ถือเป็นเส้นทางที่แท้จริง ชื่อที่มีวงเล็บเหลี่ยม ([]) จะต้องอยู่ในเครื่องหมายคำพูดเดี่ยว (')

เริ่มต้นใน PowerShell 7.4 คุณสามารถระบุเส้นทางโฟลเดอร์โดยไม่มีชื่อไฟล์ได้ เมื่อคุณดำเนินการ คำสั่งจะใช้ชื่อไฟล์จากส่วนสุดท้ายของ URI ที่ได้รับการแก้ไขหลังจากการเปลี่ยนเส้นทางใดๆ เมื่อคุณระบุเส้นทางโฟลเดอร์สำหรับ OutFile คุณจะไม่สามารถใช้พารามิเตอร์ Resume ได้

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-PassThru

พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อมีการใช้พารามิเตอร์ OutFile ในคำสั่งด้วย จุดประสงค์คือให้เขียนผลลัพธ์ลงในไฟล์และไปป์ไลน์

บันทึก

เมื่อคุณใช้พารามิเตอร์ PassThru เอาต์พุตจะถูกเขียนไปยังไปป์ไลน์ แต่ไฟล์จะไม่ถูกสร้างขึ้น สิ่งนี้ได้รับการแก้ไขแล้วใน PowerShell 7.5-preview.4 สำหรับข้อมูลเพิ่มเติม โปรดดูที่ PowerShell ปัญหา #15409

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

ไม่มีเอาท์พุต

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-PreserveAuthorizationOnRedirect

บ่งชี้ว่า cmdlet ควรคงส่วนหัว การอนุญาต ไว้ เมื่อมีการเปลี่ยนเส้นทาง

ตามค่าเริ่มต้น cmdlet จะตัดส่วนหัว การอนุญาต ก่อนที่จะเปลี่ยนเส้นทาง การระบุพารามิเตอร์นี้จะปิดใช้งานตรรกะนี้ในกรณีที่จำเป็นต้องส่งส่วนหัวไปยังตำแหน่งการเปลี่ยนเส้นทาง

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-PreserveHttpMethodOnRedirect

บ่งชี้ว่า cmdlet ควรรักษาวิธีการร้องขอข้ามการเปลี่ยนเส้นทาง

ตามค่าเริ่มต้น cmdlet จะเปลี่ยนวิธีการเป็น GET เมื่อเปลี่ยนเส้นทาง การระบุพารามิเตอร์นี้จะปิดใช้งานตรรกะนี้เพื่อให้แน่ใจว่าสามารถใช้วิธีการที่ต้องการกับการเปลี่ยนเส้นทางได้

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 7.4

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Proxy

ใช้พร็อกซีเซิร์ฟเวอร์สำหรับคำขอ แทนที่จะเชื่อมต่อโดยตรงกับทรัพยากรอินเทอร์เน็ต ป้อน Uniform Resource Identifier (URI) ของพร็อกซีเซิร์ฟเวอร์เครือข่าย

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

ยูริ

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-ProxyCredential

ระบุบัญชีผู้ใช้ที่มีสิทธิ์ใช้พร็อกซีเซิร์ฟเวอร์ที่ระบุโดยพารามิเตอร์ พร็อกซี ค่าเริ่มต้นคือผู้ใช้ปัจจุบัน

พิมพ์ชื่อผู้ใช้ เช่น User01 หรือ Domain01\User01, User@Domain.Com หรือป้อน PSCredential วัตถุ เช่น วัตถุที่สร้างโดย Get-Credential cmdlet

พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อมีการใช้พารามิเตอร์ Proxy ในคำสั่งด้วย คุณไม่สามารถใช้พารามิเตอร์ ProxyCredential และ ProxyUseDefaultCredentials ในคำสั่งเดียวกัน

พิมพ์ :

PSCredential

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-ProxyUseDefaultCredentials

บ่งชี้ว่า cmdlet ใช้ข้อมูลประจำตัวของผู้ใช้ปัจจุบันเพื่อเข้าถึงพร็อกซีเซิร์ฟเวอร์ที่ระบุโดยพารามิเตอร์ พร็อกซี

พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อมีการใช้พารามิเตอร์ Proxy ในคำสั่งด้วย คุณไม่สามารถใช้พารามิเตอร์ ProxyCredential และ ProxyUseDefaultCredentials ในคำสั่งเดียวกัน

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-ResponseHeadersVariable

สร้างตัวแปรที่มีพจนานุกรมส่วนหัวการตอบกลับ ป้อนชื่อตัวแปรโดยไม่มีเครื่องหมายดอลลาร์ ($) คีย์ของพจนานุกรมประกอบด้วยชื่อฟิลด์และค่าของส่วนหัวการตอบกลับที่เว็บเซิร์ฟเวอร์ส่งคืน

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

String

นามแฝง :

RHV

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Resume

พยายามอย่างเต็มที่เพื่อดาวน์โหลดไฟล์บางส่วนต่อ พารามิเตอร์ Resume ต้องใช้พารามิเตอร์ OutFile

ประวัติย่อทำงานเฉพาะกับขนาดของไฟล์ในเครื่องและไฟล์ระยะไกลเท่านั้น และไม่มีการตรวจสอบอื่นใดว่าไฟล์ในเครื่องและไฟล์ระยะไกลเหมือนกัน

หากขนาดไฟล์ในเครื่องเล็กกว่าขนาดไฟล์ระยะไกล cmdlet จะพยายามดาวน์โหลดไฟล์ต่อและผนวกไบต์ที่เหลือต่อท้ายไฟล์

หากขนาดไฟล์ในเครื่องเท่ากับขนาดไฟล์ระยะไกล จะไม่มีการดำเนินการใดๆ และ cmdlet จะถือว่าการดาวน์โหลดเสร็จสมบูรณ์แล้ว

หากขนาดไฟล์ในเครื่องใหญ่กว่าขนาดไฟล์ระยะไกล ไฟล์ในเครื่องจะถูกเขียนทับและไฟล์ระยะไกลทั้งหมดจะถูกดาวน์โหลดใหม่ทั้งหมด ลักษณะการทำงานนี้จะเหมือนกับการใช้ OutFile โดยไม่มี ดำเนินการต่อ

หากเซิร์ฟเวอร์ระยะไกลไม่รองรับการดาวน์โหลดต่อ ไฟล์ในเครื่องจะถูกเขียนทับและไฟล์ระยะไกลทั้งหมดจะถูกดาวน์โหลดใหม่ทั้งหมด ลักษณะการทำงานนี้จะเหมือนกับการใช้ OutFile โดยไม่มี ดำเนินการต่อ

หากไม่มีไฟล์ในเครื่อง ไฟล์ในเครื่องจะถูกสร้างขึ้นและไฟล์ระยะไกลทั้งหมดจะถูกดาวน์โหลดอย่างสมบูรณ์ ลักษณะการทำงานนี้จะเหมือนกับการใช้ OutFile โดยไม่มี ดำเนินการต่อ

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.1.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-RetryIntervalSec

ระบุช่วงเวลาระหว่างการลองเชื่อมต่ออีกครั้งเมื่อได้รับรหัสความล้มเหลวระหว่าง 400 ถึง 599 รวมหรือ 304 ค่าต้องอยู่ระหว่าง 1 ถึง [int]::MaxValue เมื่อรหัสความล้มเหลวคือ 429 และการตอบสนองมีคุณสมบัติ Retry-After ในส่วนหัว cmdlet จะใช้ค่านั้นสำหรับช่วงเวลาการลองใหม่ แม้ว่าจะมีการระบุพารามิเตอร์นี้ก็ตาม

นอกจากนี้ โปรดดูพารามิเตอร์ MaximumRetryCount เพื่อระบุจำนวนการลองใหม่

พิมพ์ :

Int32

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

5

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SessionVariable

สร้างตัวแปรที่มีเซสชันคำขอเว็บ ป้อนชื่อตัวแปรโดยไม่มีเครื่องหมายดอลลาร์ ($)

เมื่อคุณระบุตัวแปรเซสชัน Invive-RestMethod จะสร้างออบเจ็กต์เซสชันคำขอเว็บและกำหนดให้กับตัวแปรที่มีชื่อที่ระบุในเซสชัน PowerShell ของคุณ คุณสามารถใช้ตัวแปรในเซสชันของคุณได้ทันทีที่คำสั่งเสร็จสิ้น

ก่อน PowerShell 7.4 เซสชันคำขอเว็บไม่ใช่การเชื่อมต่อแบบถาวร เป็นออบเจ็กต์ที่มีข้อมูลเกี่ยวกับการเชื่อมต่อและคำขอ รวมถึงคุกกี้ ข้อมูลรับรอง ค่าการเปลี่ยนเส้นทางสูงสุด และสตริงตัวแทนผู้ใช้ คุณสามารถใช้มันเพื่อแบ่งปันสถานะและข้อมูลระหว่างคำขอทางเว็บ

เริ่มต้นใน PowerShell 7.4 เซสชันคำขอเว็บจะคงอยู่ตราบใดที่คุณสมบัติของเซสชันไม่ถูกแทนที่ในคำขอครั้งต่อไป เมื่อเป็นเช่นนั้น cmdlet จะสร้างเซสชันใหม่ด้วยค่าใหม่ เซสชันถาวรจะช่วยลดค่าใช้จ่ายสำหรับการร้องขอซ้ำๆ ทำให้เร็วขึ้นมาก

หากต้องการใช้เซสชันคำขอเว็บในคำขอเว็บครั้งต่อๆ ไป ให้ระบุตัวแปรเซสชันในค่าของพารามิเตอร์ WebSession PowerShell ใช้ข้อมูลในวัตถุเซสชันคำขอเว็บเมื่อสร้างการเชื่อมต่อใหม่ หากต้องการแทนที่ค่าในเซสชันคำขอเว็บ ให้ใช้พารามิเตอร์ cmdlet เช่น UserAgent หรือ ข้อมูลรับรอง ค่าพารามิเตอร์มีความสำคัญมากกว่าค่าในเซสชันคำขอเว็บ

คุณไม่สามารถใช้พารามิเตอร์ SessionVariable และ WebSession ในคำสั่งเดียวกัน

พิมพ์ :

String

นามแฝง :

SV

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SkipCertificateCheck

ข้ามการตรวจสอบความถูกต้องของใบรับรองซึ่งรวมถึงการตรวจสอบความถูกต้องทั้งหมด เช่น การหมดอายุ การเพิกถอน หน่วยงานหลักที่เชื่อถือได้ เป็นต้น

คำเตือน

การใช้พารามิเตอร์นี้ไม่ปลอดภัยและไม่แนะนำ สวิตช์นี้มีวัตถุประสงค์เพื่อใช้กับโฮสต์ที่รู้จักโดยใช้ใบรับรองที่ลงนามด้วยตนเองเพื่อการทดสอบเท่านั้น ใช้ความเสี่ยงของคุณเอง

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SkipHeaderValidation

บ่งชี้ว่า cmdlet ควรเพิ่มส่วนหัวให้กับคำขอโดยไม่มีการตรวจสอบความถูกต้อง

สวิตช์นี้ควรใช้สำหรับไซต์ที่ต้องการค่าส่วนหัวที่ไม่เป็นไปตามมาตรฐาน การระบุสวิตช์นี้จะปิดใช้งานการตรวจสอบความถูกต้องเพื่อให้ค่าที่ถูกส่งผ่านโดยไม่ตรวจสอบ เมื่อระบุ ส่วนหัวทั้งหมดจะถูกเพิ่มโดยไม่มีการตรวจสอบความถูกต้อง

การดำเนินการนี้จะปิดใช้งานการตรวจสอบความถูกต้องสำหรับค่าที่ส่งไปยังพารามิเตอร์ ContentType, Headers และ UserAgent

คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SkipHttpErrorCheck

พารามิเตอร์นี้ทำให้ cmdlet ละเว้นสถานะข้อผิดพลาด HTTP และดำเนินการตอบสนองต่อไป การตอบสนองข้อผิดพลาดจะถูกเขียนไปยังไปป์ไลน์เหมือนกับว่าดำเนินการสำเร็จ

พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 7

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SslProtocol

ตั้งค่าโปรโตคอล SSL/TLS ที่อนุญาตสำหรับคำขอเว็บ ตามค่าเริ่มต้น โปรโตคอล SSL/TLS ที่ระบบรองรับจะได้รับอนุญาต SslProtocol อนุญาตให้จำกัดโปรโตคอลเฉพาะเพื่อวัตถุประสงค์ในการปฏิบัติตามข้อกำหนด

ค่าเหล่านี้ถูกกำหนดเป็นการแจงนับตามแฟล็ก คุณสามารถรวมค่าหลายค่าเข้าด้วยกันเพื่อตั้งค่าแฟล็กหลายรายการโดยใช้พารามิเตอร์นี้ ค่าสามารถส่งผ่านไปยังพารามิเตอร์ SslProtocol เป็นอาร์เรย์ของค่าหรือเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาคของค่าเหล่านั้น cmdlet จะรวมค่าต่างๆ โดยใช้การดำเนินการแบบไบนารี่หรือ การส่งค่าเป็นอาร์เรย์เป็นตัวเลือกที่ง่ายที่สุด และยังช่วยให้คุณใช้การเติมแท็บกับค่าได้อีกด้วย คุณอาจระบุค่าหลายค่าในทุกแพลตฟอร์มไม่ได้

บันทึก

บนแพลตฟอร์มที่ไม่ใช่ Windows อาจไม่สามารถระบุ Tls หรือ Tls12 เป็นตัวเลือกได้ การสนับสนุน Tls13 ไม่มีให้บริการบนระบบปฏิบัติการทั้งหมด และจะต้องได้รับการตรวจสอบตามแต่ละระบบปฏิบัติการ

คุณลักษณะนี้ถูกเพิ่มใน PowerShell 6.0.0 และเพิ่มการสนับสนุนสำหรับ Tls13 ใน PowerShell 7.1

พิมพ์ :

WebSslโปรโตคอล

ค่าที่ยอมรับ:

ค่าเริ่มต้น Tls, Tls11, Tls12, Tls13

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-StatusCodeVariable

สร้างตัวแปรที่มีผลลัพธ์รหัสสถานะ HTTP ของการร้องขอ ป้อนชื่อตัวแปรโดยไม่มีเครื่องหมายดอลลาร์ ($)

พารามิเตอร์สามารถระบุข้อความแสดงความสำเร็จหรือข้อความแสดงความล้มเหลวเมื่อใช้กับพารามิเตอร์ SkipHttpErrorCheck

ป้อนชื่อตัวแปรของพารามิเตอร์เป็นสตริง เช่น -StatusCodeVariable "scv"

พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 7

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Token

โทเค็น OAuth หรือ Bearer ที่จะรวมไว้ในคำขอ โทเค็น จำเป็นสำหรับตัวเลือกการตรวจสอบสิทธิ์บางตัว ไม่สามารถใช้ได้อย่างอิสระ

โทเค็น รับ SecureString ที่มีโทเค็น หากต้องการจัดหาโทเค็น ให้ใช้สิ่งต่อไปนี้ด้วยตนเอง:

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

พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 6.0

พิมพ์ :

SecureString

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-TransferEncoding

ระบุค่าสำหรับส่วนหัวการตอบสนอง HTTP ที่เข้ารหัสการโอน ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

  • เป็นก้อน
  • บีบอัด
  • ยุบ
  • GZip
  • ตัวตน
พิมพ์ :

String

ค่าที่ยอมรับ:

เป็นก้อน, บีบอัด, ยุบ, gzip, ตัวตน

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-UnixSocket

ระบุชื่อของซ็อกเก็ต Unix ที่จะเชื่อมต่อ พารามิเตอร์นี้รองรับบนระบบที่ใช้ Unix และ Windows เวอร์ชัน 1803 และใหม่กว่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรองรับ Windows ของซ็อกเก็ต Unix โปรดดูโพสต์บนบล็อก Windows/WSL Interop with AF_UNIX

พารามิเตอร์นี้ถูกเพิ่มใน PowerShell 7.4

พิมพ์ :

UnixDomainSocketEndPoint

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Uri

ระบุ Uniform Resource Identifier (URI) ของทรัพยากรอินเทอร์เน็ตที่ส่งคำขอเว็บไป พารามิเตอร์นี้รองรับค่า HTTP, HTTPS, FTP และ FILE

จำเป็นต้องมีพารามิเตอร์นี้ ชื่อพารามิเตอร์ (Uri) เป็นทางเลือก

พิมพ์ :

ยูริ

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-UseBasicParsing

พารามิเตอร์นี้เลิกใช้แล้ว ตั้งแต่ PowerShell 6.0.0 เป็นต้นไป คำขอเว็บทั้งหมดจะใช้การแยกวิเคราะห์พื้นฐานเท่านั้น พารามิเตอร์นี้รวมไว้สำหรับความเข้ากันได้แบบย้อนหลังเท่านั้น และการใช้งานใดๆ ของพารามิเตอร์นี้จะไม่มีผลกระทบต่อการทำงานของ cmdlet

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-UseDefaultCredentials

บ่งชี้ว่า cmdlet ใช้ข้อมูลประจำตัวของผู้ใช้ปัจจุบันเพื่อส่งคำขอเว็บ ไม่สามารถใช้กับ การตรวจสอบสิทธิ์ หรือ ข้อมูลรับรอง และอาจไม่รองรับในบางแพลตฟอร์ม

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-UserAgent

ระบุสตริงตัวแทนผู้ใช้สำหรับคำขอเว็บ

ตัวแทนผู้ใช้เริ่มต้นจะคล้ายกับ Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 โดยมีการเปลี่ยนแปลงเล็กน้อยสำหรับแต่ละระบบปฏิบัติการและแพลตฟอร์ม

หากต้องการทดสอบเว็บไซต์ด้วยสตริง User Agent มาตรฐานที่อินเทอร์เน็ตเบราว์เซอร์ส่วนใหญ่ใช้ ให้ใช้คุณสมบัติของคลาส PSUserAgent เช่น Chrome, FireFox, InternetExplorer, Opera และ Safari

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-WebSession

ระบุเซสชันคำขอเว็บ ป้อนชื่อตัวแปร รวมทั้งเครื่องหมายดอลลาร์ ($)

หากต้องการแทนที่ค่าในเซสชันคำขอเว็บ ให้ใช้พารามิเตอร์ cmdlet เช่น UserAgent หรือ ข้อมูลรับรอง ค่าพารามิเตอร์มีความสำคัญมากกว่าค่าในเซสชันคำขอเว็บ ส่วนหัวที่เกี่ยวข้องกับเนื้อหา เช่น Content-Type จะถูกแทนที่เช่นกันเมื่อมีการระบุออบเจ็กต์ MultipartFormDataContent สำหรับ Body

เซสชันคำขอเว็บไม่ใช่การเชื่อมต่อแบบถาวร ซึ่งต่างจากเซสชันระยะไกล เป็นออบเจ็กต์ที่มีข้อมูลเกี่ยวกับการเชื่อมต่อและคำขอ รวมถึงคุกกี้ ข้อมูลรับรอง ค่าการเปลี่ยนเส้นทางสูงสุด และสตริงตัวแทนผู้ใช้ คุณสามารถใช้มันเพื่อแบ่งปันสถานะและข้อมูลระหว่างคำขอทางเว็บ

หากต้องการสร้างเซสชันคำขอเว็บ ให้ป้อนชื่อตัวแปรโดยไม่มีเครื่องหมายดอลลาร์ในค่าของพารามิเตอร์ SessionVariable ของคำสั่ง Intake-RestMethod Inrigger-RestMethod สร้างเซสชันและบันทึกไว้ในตัวแปร ในคำสั่งต่อมา ให้ใช้ตัวแปรเป็นค่าของพารามิเตอร์ WebSession

คุณไม่สามารถใช้พารามิเตอร์ SessionVariable และ WebSession ในคำสั่งเดียวกันได้

พิมพ์ :

WebRequestSession

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

อินพุต

วัตถุ

คุณสามารถส่งเนื้อความของคำขอเว็บไปยัง cmdlet นี้

เอาท์พุต

Int64

เมื่อคำขอส่งคืนจำนวนเต็ม cmdlet นี้จะส่งคืนจำนวนเต็มนั้น

สตริง

เมื่อคำขอส่งคืนสตริง cmdlet นี้จะส่งคืนสตริงนั้น

เอกสาร Xml

เมื่อคำขอส่งคืน XML ที่ถูกต้อง cmdlet นี้จะส่งคืนเป็น XmlDocument

PSObject

เมื่อคำขอส่งคืนสตริง JSON cmdlet นี้จะส่งคืน PSObject ที่แสดงถึงข้อมูล

หมายเหตุ

PowerShell มีนามแฝงต่อไปนี้สำหรับ Invoke-RestMethod:

  • ทุกแพลตฟอร์ม:

      irm

คุณสมบัติบางอย่างอาจไม่สามารถใช้ได้ในทุกแพลตฟอร์ม

เนื่องจากการเปลี่ยนแปลงใน .NET Core 3.1, PowerShell 7.0 และสูงกว่าจึงใช้คุณสมบัติ HttpClient.DefaultProxy เพื่อกำหนดการกำหนดค่าพร็อกซี

มูลค่าของคุณสมบัตินี้เป็นกฎที่แตกต่างกันไปขึ้นอยู่กับแพลตฟอร์มของคุณ:

  • สำหรับ Windows: อ่านการกำหนดค่าพร็อกซีจากตัวแปรสภาพแวดล้อม หรือจากการตั้งค่าพร็อกซีของผู้ใช้ หากไม่ได้กำหนดไว้
  • สำหรับ macOS: อ่านการกำหนดค่าพร็อกซีจากตัวแปรสภาพแวดล้อม หรือจากการตั้งค่าพร็อกซีของระบบ หากไม่ได้กำหนดไว้
  • สำหรับ Linux: อ่านการกำหนดค่าพร็อกซีจากตัวแปรสภาพแวดล้อม หรือในกรณีที่ไม่ได้กำหนดไว้ คุณสมบัตินี้จะเริ่มต้นอินสแตนซ์ที่ไม่ได้กำหนดค่าซึ่งจะเลี่ยงผ่านที่อยู่ทั้งหมด

ตัวแปรสภาพแวดล้อมที่ใช้สำหรับการเริ่มต้น DefaultProxy บนแพลตฟอร์ม Windows และ Unix คือ:

  • HTTP_PROXY: ชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ที่ใช้ในคำขอ HTTP
  • HTTPS_PROXY: ชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ที่ใช้ในคำขอ HTTPS
  • ALL_PROXY: ชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ที่ใช้ในคำขอ HTTP และ HTTPS ในกรณีที่ไม่ได้กำหนด HTTP_PROXY หรือ HTTPS_PROXY
  • NO_PROXY: รายการชื่อโฮสต์ที่คั่นด้วยเครื่องหมายจุลภาคซึ่งควรแยกออกจากการพร็อกซี

PowerShell 7.4 เพิ่มการรองรับอัลกอริธึมการบีบอัด Brotli

บทความที่เกี่ยวข้อง