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

เรียกใช้ 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: Bearer RFC 6750 พร้อมด้วยโทเค็นที่ให้มา
  • OAuth: ต้องใช้พารามิเตอร์ Token ส่งส่วนหัว Authorization: Bearer RFC 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

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

    Default
    Delete
    Get
    Head
    Merge
    Options
    Patch
    Post
    Put
    Trace

พารามิเตอร์ 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 ที่เข้ารหัสการโอน ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

    Chunked
    Compress
    Deflate
    GZip
    Identity
พิมพ์ :

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

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

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