เรียกใช้ WebRequest (Microsoft.PowerShell.Utility)
Invoke-WebRequest
- โมดูล :
- Microsoft.PowerShell.Utility
รับเนื้อหาจากหน้าเว็บบนอินเทอร์เน็ต
ไวยากรณ์
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>]คำอธิบาย
Inrigger-WebRequest cmdlet จะส่งคำขอ HTTP และ HTTPS ไปยังหน้าเว็บหรือบริการเว็บ แยกวิเคราะห์การตอบสนองและส่งกลับคอลเลกชันของลิงก์ รูปภาพ และองค์ประกอบ HTML ที่สำคัญอื่นๆ
cmdlet นี้ถูกนำมาใช้ใน PowerShell 3.0
เริ่มต้นใน PowerShell 7.0 Inrigger-WebRequest รองรับการกำหนดค่าพร็อกซีที่กำหนดโดยตัวแปรสภาพแวดล้อม ดูส่วนหมายเหตุของบทความนี้
มันเป็นสิ่งสำคัญ
ตัวอย่างในบทความนี้อ้างอิงโฮสต์ในโดเมน contoso.com นี่คือโดเมนสมมติที่ใช้โดย Microsoft เป็นตัวอย่าง ตัวอย่างได้รับการออกแบบเพื่อแสดงวิธีการใช้ cmdlet ของ อย่างไรก็ตาม เนื่องจากไม่มีไซต์ contoso.com ตัวอย่างจึงไม่ทำงาน ปรับตัวอย่างให้เข้ากับโฮสต์ในสภาพแวดล้อมของคุณ
เริ่มต้นใน PowerShell 7.4 การเข้ารหัสอักขระสำหรับคำขอจะมีค่าเริ่มต้นเป็น UTF-8 แทนที่จะเป็น ASCII หากคุณต้องการการเข้ารหัสอื่น คุณต้องตั้งค่าแอตทริบิวต์ charset ในส่วนหัว Content-Type
ตัวอย่าง
ตัวอย่างที่ 1: ส่งคำขอทางเว็บ
ตัวอย่างนี้ใช้ cmdlet Inrigger-WebRequest เพื่อส่งคำขอเว็บไปยังไซต์ Bing.com
$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
คำสั่งที่สองรับ InputField ใดๆ โดยที่คุณสมบัติ ชื่อ เหมือนกับ "* Value" ผลลัพธ์ที่กรองจะถูกไพพ์ไปที่ Select-Object เพื่อเลือกคุณสมบัติ ชื่อ และ ค่า
ตัวอย่างที่ 2: ใช้บริการเว็บแบบมีสถานะ
ตัวอย่างนี้แสดงวิธีใช้ cmdlet 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 ครั้งแรกจะส่งคำขอลงชื่อเข้าใช้ คำสั่งระบุค่า Session สำหรับค่าของพารามิเตอร์ SessionVariable เมื่อคำสั่งเสร็จสิ้น ตัวแปร $LoginResponse จะมี BasicHtmlWebResponseObject และตัวแปร $Session จะมีอ็อบเจ็กต์ WebRequestSession สิ่งนี้จะบันทึกผู้ใช้เข้าสู่ไซต์
การเรียก Invoke-WebRequest ครั้งที่สองจะดึงข้อมูลโปรไฟล์ของผู้ใช้ ซึ่งกำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ไซต์ ข้อมูลเซสชันที่จัดเก็บไว้ในตัวแปร $Session จัดเตรียมคุกกี้เซสชันให้กับไซต์ที่สร้างขึ้นระหว่างการเข้าสู่ระบบ
ตัวอย่างที่ 3: รับลิงก์จากหน้าเว็บ
ตัวอย่างนี้รับลิงก์ในหน้าเว็บ ใช้ Inrigger-WebRequest cmdlet เพื่อรับเนื้อหาหน้าเว็บ จากนั้นจะใช้คุณสมบัติ Links ของ BasicHtmlWebResponseObject ที่ Inrigger-WebRequest ส่งคืน และคุณสมบัติ Href ของแต่ละลิงก์ .
(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Hrefตัวอย่างที่ 4: เขียนเนื้อหาตอบกลับไปยังไฟล์โดยใช้การเข้ารหัสที่กำหนดไว้ในหน้าที่ร้องขอ
ตัวอย่างนี้ใช้ Inrigger-WebRequest cmdlet เพื่อดึงเนื้อหาหน้าเว็บของหน้าเอกสาร PowerShell
$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
คำสั่งที่สองจะสร้าง StreamWriter เพื่อใช้ในการเขียนเนื้อหาตอบกลับลงในไฟล์ คุณสมบัติ การเข้ารหัส ของออบเจ็กต์การตอบสนองใช้เพื่อตั้งค่าการเข้ารหัสสำหรับไฟล์
คำสั่งไม่กี่คำสั่งสุดท้ายจะเขียนคุณสมบัติ เนื้อหา ลงในไฟล์ จากนั้นจึงกำจัด StreamWriter
โปรดทราบว่าคุณสมบัติ การเข้ารหัส จะเป็นโมฆะหากคำขอทางเว็บไม่ส่งคืนเนื้อหาข้อความ
ตัวอย่างที่ 5: ส่งไฟล์ multipart/form-data
ตัวอย่างนี้ใช้ Inrigger-WebRequest cmdlet อัปโหลดไฟล์เป็นการส่ง multipart/form-data ไฟล์ c:\document.txt ถูกส่งเป็นฟิลด์แบบฟอร์ม document โดยมี Content-Type เป็น text/plain รหัส>.
$FilePath = 'c:\document.txt'
$FieldName = 'document'
$ContentType = 'text/plain'
$FileStream = [System.IO.FileStream]::new($filePath, [System.IO.FileMode]::Open)
$FileHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new('form-data')
$FileHeader.Name = $FieldName
$FileHeader.FileName = Split-Path -leaf $FilePath
$FileContent = [System.Net.Http.StreamContent]::new($FileStream)
$FileContent.Headers.ContentDisposition = $FileHeader
$FileContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::Parse($ContentType)
$MultipartContent = [System.Net.Http.MultipartFormDataContent]::new()
$MultipartContent.Add($FileContent)
$Response = Invoke-WebRequest -Body $MultipartContent -Method 'POST' -Uri 'https://api.contoso.com/upload'ตัวอย่างที่ 6: การส่งข้อมูลหลายส่วน/แบบฟอร์ม-ข้อมูลแบบง่าย
API บางตัวจำเป็นต้องมีการส่ง multipart/form-data เพื่ออัปโหลดไฟล์และเนื้อหาแบบผสม ตัวอย่างนี้สาธิตการอัปเดตโปรไฟล์ผู้ใช้
$Uri = 'https://api.contoso.com/v2/profile'
$Form = @{
firstName = 'John'
lastName = 'Doe'
email = 'john.doe@contoso.com'
avatar = Get-Item -Path 'c:\Pictures\jdoe.png'
birthday = '1980-10-15'
hobbies = 'Hiking','Fishing','Jogging'
}
$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $Formแบบฟอร์มโปรไฟล์ต้องการฟิลด์เหล่านี้: firstName, lastName, email, avatar, birthday และ งานอดิเรก API คาดหวังว่าจะมีการระบุรูปภาพสำหรับรูปโปรไฟล์ผู้ใช้ในช่อง avatar API ยังยอมรับรายการ งานอดิเรก หลายรายการที่จะส่งในแบบฟอร์มเดียวกัน
เมื่อสร้าง $Form HashTable ชื่อคีย์จะถูกใช้เป็นชื่อฟิลด์ของฟอร์ม ตามค่าเริ่มต้น ค่าของ HashTable จะถูกแปลงเป็นสตริง หากมีค่า System.IO.FileInfo เนื้อหาไฟล์จะถูกส่ง หากมีคอลเลกชัน เช่น อาร์เรย์หรือรายการ ฟิลด์แบบฟอร์มจะถูกส่งหลายครั้ง
การใช้ Get-Item บนคีย์ avatar ออบเจ็กต์ FileInfo จะถูกตั้งค่าเป็นค่า ผลลัพธ์คือการส่งข้อมูลรูปภาพสำหรับ jdoe.png ถูกส่งไปแล้ว
โดยการระบุรายการให้กับคีย์ งานอดิเรก ฟิลด์ งานอดิเรก จะปรากฏในการส่งหนึ่งครั้งสำหรับแต่ละรายการในรายการ
ตัวอย่างที่ 7: รับข้อความที่ไม่สำเร็จจาก Inrigg-WebRequest
เมื่อ Inrigger-WebRequest พบข้อความ HTTP ที่ไม่สำเร็จ (404, 500 ฯลฯ) ข้อความจะไม่ส่งคืนเอาต์พุตและส่งข้อผิดพลาดในการสิ้นสุด หากต้องการตรวจจับข้อผิดพลาดและดู StatusCode คุณสามารถรวมการดำเนินการไว้ในบล็อก try/catch
try
{
$Response = Invoke-WebRequest -Uri "www.microsoft.com/unkownhost"
# This will only execute if the Invoke-WebRequest is successful.
$StatusCode = $Response.StatusCode
} catch {
$StatusCode = $_.Exception.Response.StatusCode.value__
}
$StatusCode
404ข้อผิดพลาดในการยุติถูกจับได้โดยบล็อก catch ซึ่งจะดึงข้อมูล StatusCode จากออบเจ็กต์ ข้อยกเว้น
ตัวอย่างที่ 8: ดาวน์โหลดไฟล์หลายไฟล์พร้อมกัน
Inrigger-WebRequest cmdlet สามารถดาวน์โหลดไฟล์ได้ครั้งละหนึ่งไฟล์เท่านั้น ตัวอย่างต่อไปนี้ใช้ 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: การข้ามการตรวจสอบส่วนหัว
ตามค่าเริ่มต้น cmdlet 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 เป็นบริการที่ส่งคืนข้อมูลเกี่ยวกับคำขอทางเว็บและการตอบกลับสำหรับการแก้ไขปัญหา ตัวแปร $Uri ถูกกำหนดให้กับปลายทาง /headers ของบริการ ซึ่งส่งคืนส่วนหัวของคำขอเป็นเนื้อหาในการตอบกลับ
ส่วนหัวคำขอ If-Match ถูกกำหนดไว้ใน RFC-7232 ส่วน 3.1 และต้องการให้กำหนดค่าสำหรับส่วนหัวนั้นด้วยเครื่องหมายคำพูดโดยรอบ ตัวแปร $InvalidHeaders ได้รับการกำหนดตารางแฮช โดยที่ค่าของ If-Match ไม่ถูกต้อง เนื่องจากถูกกำหนดเป็น 12345 แทนที่จะเป็น " 12345".
การเรียก Invoke-WebRequest ด้วยส่วนหัวที่ไม่ถูกต้องจะส่งคืนข้อผิดพลาดในการรายงานว่าค่าที่จัดรูปแบบไม่ถูกต้อง คำขอไม่ได้ถูกส่งไปยังปลายทาง
การเรียก Inrigger-WebRequest ด้วยพารามิเตอร์ SkipHeaderValidation จะละเว้นความล้มเหลวในการตรวจสอบและส่งคำขอไปยังจุดสิ้นสุด เนื่องจากจุดสิ้นสุดยอมรับค่าส่วนหัวที่ไม่เข้ากัน cmdlet จึงส่งกลับวัตถุตอบสนองโดยไม่มีข้อผิดพลาด
ตัวอย่างที่ 10: ส่งคำขอโดยใช้ HTTP 2.0
ตัวอย่างนี้รับลิงก์ในหน้าเว็บโดยใช้โปรโตคอล HTTP 2.0 ใช้ Inrigger-WebRequest cmdlet เพื่อรับเนื้อหาหน้าเว็บ จากนั้นจะใช้คุณสมบัติ Links ของ BasicHtmlWebResponseObject ที่ Inrigger-WebRequest ส่งคืน และคุณสมบัติ Href ของแต่ละลิงก์ .
(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Hrefตัวอย่างที่ 11: ส่งคำขอไปยังแอปพลิเคชันซ็อกเก็ต Unix
แอปพลิเคชั่นบางตัว เช่น Docker เปิดเผยซ็อกเก็ต Unix สำหรับการสื่อสาร ตัวอย่างนี้ค้นหารายการอิมเมจ Docker โดยใช้ Docker API cmdlet เชื่อมต่อกับ Docker daemon โดยใช้ซ็อกเก็ต Unix
Invoke-WebRequest -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: BearerRFC 6750 พร้อมด้วยโทเค็นที่ให้มาOAuth: ต้องใช้พารามิเตอร์ Token ส่งส่วนหัวAuthorization: BearerRFC 6750 พร้อมด้วยโทเค็นที่ให้มา
การจัดหา การตรวจสอบสิทธิ์ จะแทนที่ส่วนหัว การอนุญาต ใดๆ ที่จัดหาให้กับ ส่วนหัว หรือรวมอยู่ใน WebSession
คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0
- พิมพ์ :
WebAuthenticationType
- ค่าที่ยอมรับ:
ไม่มี, พื้นฐาน, ผู้ถือ, OAuth
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Body
ระบุเนื้อความของการร้องขอ เนื้อความคือเนื้อหาของคำขอที่ตามหลังส่วนหัว คุณยังสามารถไพพ์ค่าเนื้อหาไปที่ Inrigg-WebRequest ได้อีกด้วย
พารามิเตอร์ เนื้อหา สามารถใช้เพื่อระบุรายการพารามิเตอร์การค้นหาหรือระบุเนื้อหาของการตอบกลับ สำหรับพารามิเตอร์การสืบค้น cmdlet ใช้วิธีการเมธอด System.Net.WebUtility.UrlEncode เพื่อเข้ารหัสคู่คีย์-ค่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัสสตริงสำหรับ URL ดูการอ้างอิงเมธอด UrlEncode()
เมื่ออินพุตเป็นคำขอ POST และเนื้อหาเป็น สตริง ค่าทางด้านซ้ายของเครื่องหมายเท่ากับตัวแรก (=) จะถูกตั้งค่าเป็นคีย์ในข้อมูลแบบฟอร์ม และข้อความที่เหลือจะถูกตั้งค่าเป็นค่า หากต้องการระบุหลายคีย์ ให้ใช้ออบเจ็กต์ IDictionary เช่น ตารางแฮช สำหรับ เนื้อหา
เมื่ออินพุตเป็นคำขอ GET และเนื้อหาเป็น IDictionary (โดยทั่วไปคือตารางแฮช) เนื้อหาจะถูกเพิ่มใน URI เป็นพารามิเตอร์การค้นหา สำหรับคำขอประเภทอื่นๆ (เช่น PATCH) เนื้อความจะถูกตั้งค่าเป็นค่าของเนื้อความคำขอในรูปแบบ name=value มาตรฐานพร้อมค่าที่เข้ารหัส URL
เมื่ออินพุตเป็นออบเจ็กต์ System.Xml.XmlNode และการประกาศ XML ระบุการเข้ารหัส การเข้ารหัสนั้นจะใช้สำหรับข้อมูลในคำขอ เว้นแต่จะถูกแทนที่โดยพารามิเตอร์ ContentType
พารามิเตอร์ 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
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-ContentType
ระบุประเภทเนื้อหาของคำขอเว็บ
หากค่าสำหรับ ContentType มีรูปแบบการเข้ารหัส (เป็น charset) cmdlet จะใช้รูปแบบนั้นในการเข้ารหัสเนื้อหาของคำขอเว็บ หาก ContentType ไม่ได้ระบุรูปแบบการเข้ารหัส ระบบจะใช้รูปแบบการเข้ารหัสเริ่มต้นแทน ตัวอย่างของ ContentType ที่มีรูปแบบการเข้ารหัสคือ text/plain; charset=iso-8859-5 ซึ่งระบุตัวอักษรละติน/ซีริลลิก
หากละเว้นพารามิเตอร์นี้และวิธีการร้องขอคือ POST หรือ PUT Inrigger-WebRequest จะตั้งค่าประเภทเนื้อหาเป็น application/x-www-form-urlencoded มิฉะนั้น จะไม่มีการระบุประเภทเนื้อหาในการโทร
ContentType ถูกแทนที่เมื่อมีการระบุออบเจ็กต์ MultipartFormDataContent สำหรับ เนื้อหา
เริ่มต้นใน 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
ระบุวิธีการแบบกำหนดเองที่ใช้สำหรับคำขอเว็บ ซึ่งสามารถใช้ได้หากวิธีการร้องขอที่ปลายทางต้องการนั้นไม่มีตัวเลือกในวิธีการ วิธีการ และ วิธีการกำหนดเอง ไม่สามารถใช้ร่วมกันได้
ตัวอย่างนี้ทำให้คำขอ HTTP TEST ไปยัง API:
Invoke-WebRequest -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0
- พิมพ์ :
String
- นามแฝง :
CM
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-DisableKeepAlive
บ่งชี้ว่า cmdlet ตั้งค่า KeepAlive ในส่วนหัว HTTP เป็น False ตามค่าเริ่มต้น KeepAlive จะเป็น จริง KeepAlive สร้างการเชื่อมต่อแบบถาวรไปยังเซิร์ฟเวอร์เพื่ออำนวยความสะดวกในการร้องขอในภายหลัง
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
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
- พิมพ์ :
เวอร์ชัน
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
1.1
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-InFile
รับเนื้อหาของคำขอเว็บจากไฟล์ ป้อนเส้นทางและชื่อไฟล์ หากคุณละเว้นเส้นทาง ค่าเริ่มต้นจะเป็นตำแหน่งปัจจุบัน
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-MaximumRedirection
ระบุจำนวนครั้งที่ PowerShell เปลี่ยนเส้นทางการเชื่อมต่อไปยัง Uniform Resource Identifier (URI) สำรองก่อนที่การเชื่อมต่อจะล้มเหลว ค่าเริ่มต้นคือ 5 ค่า 0 (ศูนย์) ป้องกันการเปลี่ยนเส้นทางทั้งหมด
- พิมพ์ :
Int32
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
5
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-MaximumRetryCount
ระบุจำนวนครั้งที่ PowerShell พยายามเชื่อมต่ออีกครั้งเมื่อได้รับรหัสความล้มเหลวระหว่าง 400 ถึง 599 รวมหรือ 304 โปรดดูพารามิเตอร์ RetryIntervalSec เพื่อระบุจำนวนการลองใหม่
- พิมพ์ :
Int32
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Method
ระบุวิธีการที่ใช้สำหรับการร้องขอเว็บ ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:
DefaultDeleteGetHeadMergeOptionsPatchPostPutTraceพารามิเตอร์ CustomMethod สามารถใช้กับวิธีการร้องขอที่ไม่ได้ระบุไว้ข้างต้น
- พิมพ์ :
วิธีการขอเว็บ
- ค่าที่ยอมรับ:
ค่าเริ่มต้น, รับ, หัว, โพสต์, วาง, ลบ, ติดตาม, ตัวเลือก, ผสาน, แพตช์
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-NoProxy
บ่งชี้ว่า cmdlet ไม่ควรใช้พรอกซีเพื่อไปยังปลายทาง เมื่อคุณต้องการข้ามพร็อกซีที่กำหนดค่าไว้ในสภาพแวดล้อม ให้ใช้สวิตช์นี้ คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.0.0
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-OperationTimeoutSeconds
การหมดเวลานี้ใช้กับข้อมูลที่อ่านภายในสตรีม ไม่ใช่กับเวลาสตรีมโดยรวม ค่าเริ่มต้น 0 ระบุการหมดเวลาไม่มีกำหนด
การตั้งค่าเป็น 30 วินาทีหมายความว่าความล่าช้าใดๆ ที่นานกว่า 30 วินาทีระหว่างข้อมูลในสตรีมจะยุติคำขอ ไฟล์ขนาดใหญ่ที่ใช้เวลาดาวน์โหลดหลายนาทีจะไม่ยุติลง เว้นแต่สตรีมจะหยุดนานกว่า 30 วินาที
- พิมพ์ :
Int32
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-OutFile
ตามค่าเริ่มต้น Invoke-WebRequest จะส่งกลับผลลัพธ์ไปยังไปป์ไลน์ เมื่อคุณใช้พารามิเตอร์ OutFile ผลลัพธ์จะถูกบันทึกลงในไฟล์ที่ระบุและจะไม่ส่งคืนไปยังไปป์ไลน์ ป้อนเส้นทางและชื่อไฟล์ หากต้องการส่งผลลัพธ์ไปยังไฟล์และไปป์ไลน์ ให้เพิ่มพารามิเตอร์ Passthru
หากคุณละเว้นเส้นทาง ค่าเริ่มต้นจะเป็นตำแหน่งปัจจุบัน ชื่อนี้ถือเป็นเส้นทางที่แท้จริง ชื่อที่มีวงเล็บเหลี่ยม ([]) จะต้องอยู่ในเครื่องหมายคำพูดเดี่ยว (')
เริ่มต้นใน PowerShell 7.4 คุณสามารถระบุเส้นทางโฟลเดอร์โดยไม่มีชื่อไฟล์ได้ เมื่อคุณดำเนินการ คำสั่งจะใช้ชื่อไฟล์จากส่วนสุดท้ายของ URI ที่ได้รับการแก้ไขหลังจากการเปลี่ยนเส้นทางใดๆ เมื่อคุณระบุเส้นทางโฟลเดอร์สำหรับ OutFile คุณจะไม่สามารถใช้พารามิเตอร์ Resume ได้
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-PassThru
บ่งชี้ว่า cmdlet ส่งคืนผลลัพธ์ นอกเหนือจากการเขียนลงในไฟล์ พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อมีการใช้พารามิเตอร์ OutFile ในคำสั่งด้วย
บันทึก
เมื่อคุณใช้พารามิเตอร์ PassThru เอาต์พุตจะถูกเขียนไปยังไปป์ไลน์ แต่ไฟล์จะไม่ถูกสร้างขึ้น สิ่งนี้ได้รับการแก้ไขแล้วใน PowerShell 7.5-preview.4 สำหรับข้อมูลเพิ่มเติม โปรดดูที่ PowerShell ปัญหา #15409
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
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
ระบุพร็อกซีเซิร์ฟเวอร์สำหรับคำขอ แทนที่จะเชื่อมต่อโดยตรงกับทรัพยากรอินเทอร์เน็ต ป้อน URI ของพร็อกซีเซิร์ฟเวอร์เครือข่าย
- พิมพ์ :
ยูริ
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-ProxyCredential
ระบุบัญชีผู้ใช้ที่มีสิทธิ์ใช้พร็อกซีเซิร์ฟเวอร์ที่ระบุโดยพารามิเตอร์ พร็อกซี ค่าเริ่มต้นคือผู้ใช้ปัจจุบัน
พิมพ์ชื่อผู้ใช้ เช่น User01 หรือ Domain01\User01 หรือป้อนวัตถุ PSCredential เช่นที่สร้างโดย Get - cmdlet ข้อมูลรับรอง
พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อมีการใช้พารามิเตอร์ Proxy ในคำสั่งด้วย คุณไม่สามารถใช้พารามิเตอร์ ProxyCredential และ ProxyUseDefaultCredentials ในคำสั่งเดียวกัน
- พิมพ์ :
PSCredential
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
ผู้ใช้ปัจจุบัน
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-ProxyUseDefaultCredentials
บ่งชี้ว่า cmdlet ใช้ข้อมูลประจำตัวของผู้ใช้ปัจจุบันเพื่อเข้าถึงพร็อกซีเซิร์ฟเวอร์ที่ระบุโดยพารามิเตอร์ พร็อกซี
พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อมีการใช้พารามิเตอร์ Proxy ในคำสั่งด้วย คุณไม่สามารถใช้พารามิเตอร์ ProxyCredential และ ProxyUseDefaultCredentials ในคำสั่งเดียวกัน
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Resume
พยายามอย่างเต็มที่เพื่อดาวน์โหลดไฟล์บางส่วนต่อ ประวัติย่อ ต้องใช้ OutFile
ประวัติย่อทำงานเฉพาะกับขนาดของไฟล์ในเครื่องและไฟล์ระยะไกลเท่านั้น และไม่มีการตรวจสอบอื่นใดว่าไฟล์ในเครื่องและไฟล์ระยะไกลเหมือนกัน
หากขนาดไฟล์ในเครื่องเล็กกว่าขนาดไฟล์ระยะไกล cmdlet จะพยายามดาวน์โหลดไฟล์ต่อและผนวกไบต์ที่เหลือต่อท้ายไฟล์
หากขนาดไฟล์ในเครื่องเท่ากับขนาดไฟล์ระยะไกล จะไม่มีการดำเนินการใดๆ และ cmdlet จะถือว่าการดาวน์โหลดเสร็จสมบูรณ์แล้ว
หากขนาดไฟล์ในเครื่องใหญ่กว่าขนาดไฟล์ระยะไกล ไฟล์ในเครื่องจะถูกเขียนทับและดาวน์โหลดไฟล์ระยะไกลทั้งหมดอีกครั้ง ลักษณะการทำงานนี้จะเหมือนกับการใช้ OutFile โดยไม่มี ดำเนินการต่อ
หากเซิร์ฟเวอร์ระยะไกลไม่รองรับการดาวน์โหลดต่อ ไฟล์ในเครื่องจะถูกเขียนทับและดาวน์โหลดไฟล์ระยะไกลทั้งหมดอีกครั้ง ลักษณะการทำงานนี้จะเหมือนกับการใช้ OutFile โดยไม่มี ดำเนินการต่อ
หากไม่มีไฟล์ในเครื่อง ไฟล์ในเครื่องจะถูกสร้างขึ้นและดาวน์โหลดไฟล์ระยะไกลทั้งหมด ลักษณะการทำงานนี้จะเหมือนกับการใช้ OutFile โดยไม่มี ดำเนินการต่อ
คุณลักษณะนี้ถูกเพิ่มเข้ามาใน PowerShell 6.1.0
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-RetryIntervalSec
ระบุช่วงเวลาระหว่างการลองเชื่อมต่ออีกครั้งเมื่อได้รับรหัสความล้มเหลวระหว่าง 400 ถึง 599 รวมหรือ 304 โปรดดูพารามิเตอร์ MaximumRetryCount เพื่อระบุจำนวนการลองใหม่ ค่าต้องอยู่ระหว่าง 1 ถึง [int]::MaxValue
เมื่อรหัสความล้มเหลวคือ 429 และการตอบสนองมีคุณสมบัติ Retry-After ในส่วนหัว cmdlet จะใช้ค่านั้นสำหรับช่วงเวลาการลองใหม่ แม้ว่าจะมีการระบุพารามิเตอร์นี้ก็ตาม
- พิมพ์ :
Int32
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
5
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-SessionVariable
ระบุตัวแปรที่ cmdlet นี้สร้างเซสชันคำขอเว็บและบันทึกไว้ในค่า ป้อนชื่อตัวแปรโดยไม่มีเครื่องหมายดอลลาร์ ($)
เมื่อคุณระบุตัวแปรเซสชัน Invoke-WebRequest จะสร้างออบเจ็กต์เซสชันคำขอเว็บและกำหนดให้กับตัวแปรที่มีชื่อที่ระบุในเซสชัน 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
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Token
โทเค็น OAuth หรือ Bearer ที่จะรวมไว้ในคำขอ โทเค็น จำเป็นสำหรับตัวเลือกการตรวจสอบสิทธิ์บางตัว ไม่สามารถใช้ได้อย่างอิสระ
โทเค็น รับ SecureString ที่มีโทเค็น หากต้องการจัดหาโทเค็นด้วยตนเองให้ใช้สิ่งต่อไปนี้:
Invoke-WebRequest -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 6.0
- พิมพ์ :
SecureString
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-TransferEncoding
ระบุค่าสำหรับส่วนหัวการตอบสนอง HTTP ที่เข้ารหัสการโอน ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:
ChunkedCompressDeflateGZipIdentity- พิมพ์ :
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) ของทรัพยากรอินเทอร์เน็ตที่ส่งคำขอเว็บไป ป้อน URI พารามิเตอร์นี้รองรับ HTTP หรือ HTTPS เท่านั้น
จำเป็นต้องมีพารามิเตอร์นี้ ชื่อพารามิเตอร์ 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
ตัวอย่างเช่น คำสั่งต่อไปนี้ใช้สตริงตัวแทนผู้ใช้สำหรับ Internet Explorer: Inrigg-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
- พิมพ์ :
String
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-WebSession
ระบุเซสชันคำขอเว็บ ป้อนชื่อตัวแปร รวมทั้งเครื่องหมายดอลลาร์ ($)
หากต้องการแทนที่ค่าในเซสชันคำขอเว็บ ให้ใช้พารามิเตอร์ cmdlet เช่น UserAgent หรือ ข้อมูลรับรอง ค่าพารามิเตอร์มีความสำคัญมากกว่าค่าในเซสชันคำขอเว็บ ส่วนหัวที่เกี่ยวข้องกับเนื้อหา เช่น Content-Type จะถูกเขียนทับเมื่อมีการระบุออบเจ็กต์ MultipartFormDataContent สำหรับ Body
เซสชันคำขอเว็บไม่ใช่การเชื่อมต่อแบบถาวร ซึ่งต่างจากเซสชันระยะไกล เป็นออบเจ็กต์ที่มีข้อมูลเกี่ยวกับการเชื่อมต่อและคำขอ รวมถึงคุกกี้ ข้อมูลรับรอง ค่าการเปลี่ยนเส้นทางสูงสุด และสตริงตัวแทนผู้ใช้ คุณสามารถใช้มันเพื่อแบ่งปันสถานะและข้อมูลระหว่างคำขอทางเว็บ
หากต้องการสร้างเซสชันคำขอเว็บ ให้ป้อนชื่อตัวแปรโดยไม่มีเครื่องหมายดอลลาร์ในค่าของพารามิเตอร์ SessionVariable ของคำสั่ง Intake-WebRequest Inrigger-WebRequest สร้างเซสชันและบันทึกไว้ในตัวแปร ในคำสั่งต่อมา ให้ใช้ตัวแปรเป็นค่าของพารามิเตอร์ WebSession
คุณไม่สามารถใช้พารามิเตอร์ SessionVariable และ WebSession ในคำสั่งเดียวกัน
- พิมพ์ :
WebRequestSession
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
อินพุต
วัตถุ
คุณสามารถส่งเนื้อความของคำขอเว็บไปยัง cmdlet นี้
เอาท์พุต
BasicHtmlWebResponseObject
cmdlet นี้ส่งคืนวัตถุตอบสนองที่แสดงถึงผลลัพธ์ของการร้องขอเว็บ
หมายเหตุ
PowerShell มีนามแฝงต่อไปนี้สำหรับ Inrigg-WebRequest:
ทุกแพลตฟอร์ม:
iwr
เริ่มต้นด้วย PowerShell 6.0.0 Inrigg-WebRequest รองรับการแยกวิเคราะห์พื้นฐานเท่านั้น
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ BasicHtmlWebResponseObject
เนื่องจากการเปลี่ยนแปลงใน .NET Core 3.1, PowerShell 7.0 และสูงกว่าจึงใช้คุณสมบัติ HttpClient.DefaultProxy เพื่อกำหนดการกำหนดค่าพร็อกซี
มูลค่าของคุณสมบัตินี้ถูกกำหนดโดยแพลตฟอร์มของคุณ:
- สำหรับ Windows: อ่านการกำหนดค่าพร็อกซีจากตัวแปรสภาพแวดล้อม หากไม่ได้กำหนดตัวแปรเหล่านั้น คุณสมบัติจะได้มาจากการตั้งค่าพร็อกซีของผู้ใช้
- สำหรับ macOS: อ่านการกำหนดค่าพร็อกซีจากตัวแปรสภาพแวดล้อม หากไม่ได้กำหนดตัวแปรเหล่านั้น คุณสมบัติจะได้มาจากการตั้งค่าพร็อกซีของระบบ
- สำหรับ Linux: อ่านการกำหนดค่าพร็อกซีจากตัวแปรสภาพแวดล้อม หากไม่ได้กำหนดตัวแปรเหล่านั้น คุณสมบัติจะเริ่มต้นอินสแตนซ์ที่ไม่ได้กำหนดค่าซึ่งจะข้ามที่อยู่ทั้งหมด
ตัวแปรสภาพแวดล้อมที่ใช้สำหรับการเริ่มต้น DefaultProxy บนแพลตฟอร์ม Windows และ Unix คือ:
HTTP_PROXY: ชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ที่ใช้ในคำขอ HTTPHTTPS_PROXY: ชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ที่ใช้ในคำขอ HTTPSALL_PROXY: ชื่อโฮสต์หรือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ที่ใช้ในคำขอ HTTP และ HTTPS ในกรณีที่ไม่ได้กำหนดHTTP_PROXYหรือHTTPS_PROXYNO_PROXY: รายการชื่อโฮสต์ที่คั่นด้วยเครื่องหมายจุลภาคซึ่งควรแยกออกจากการพร็อกซี
PowerShell 7.4 เพิ่มการรองรับอัลกอริธึมการบีบอัด Brotli