Invoke-WebRequest
Lekéri a tartalmat egy internetes weblapról.
Syntax
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>]
Description
A Invoke-WebRequest
parancsmag HTTP- és HTTPS-kéréseket küld egy weblapnak vagy webszolgáltatásnak. Elemzi a választ, és hivatkozásokat, képeket és más jelentős HTML-elemek gyűjteményeit adja vissza.
Ezt a parancsmagot a PowerShell 3.0-ban vezettük be.
A PowerShell 7.0-tól Invoke-WebRequest
kezdve támogatja a környezeti változók által definiált proxykonfigurációt. Lásd a cikk Jegyzetek szakaszát.
Fontos
A cikkben szereplő példák a tartományban lévő contoso.com
gazdagépekre hivatkoznak. Ez egy fiktív tartomány, amelyet például a Microsoft használ. A példák a parancsmagok használatának bemutatására szolgálnak.
Mivel azonban a contoso.com
webhelyek nem léteznek, a példák nem működnek. A példákat a környezet gazdagépeihez igazíthatja.
A PowerShell 7.4-től kezdődően a kérések karakterkódolása az ASCII helyett az UTF-8 lesz. Ha más kódolásra van szüksége, be kell állítania az charset
attribútumot a Content-Type
fejlécben.
Példák
1. példa: Webes kérés küldése
Ez a példa a Invoke-WebRequest
parancsmaggal küld webkérelmet a Bing.com webhelyre.
$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
Az első parancs kiadja a kérést, és menti a választ a $Response
változóba.
A második parancs lekéri azokat az InputField-mezőket , ahol a Name tulajdonság hasonló "* Value"
. A szűrt eredmények a név- és értéktulajdonságok kiválasztásához Select-Object
vannak beállítva.
2. példa: Állapotalapú webszolgáltatás használata
Ez a példa bemutatja, hogyan használható a Invoke-WebRequest
parancsmag állapotalapú webszolgáltatással.
$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
Az első hívás, amely Invoke-WebRequest
bejelentkezési kérést küld. A parancs a SessionVariable paraméter értékének Session
értékét adja meg. A parancs befejeződésekor a változó egy BasicHtmlWebResponseObject, a $Session
változó pedig egy WebRequestSession
objektumot tartalmaz.$LoginResponse
Ez naplózza a felhasználót a webhelyre.
A második hívás beolvassa Invoke-WebRequest
a felhasználó profilját, amelyhez a felhasználónak be kell jelentkeznie a webhelyre. A változóban $Session
tárolt munkamenet-adatok munkamenet-cookie-kat biztosítanak a bejelentkezés során létrehozott webhelynek.
3. példa: Hivatkozások lekérése weblapról
Ez a példa egy weblap hivatkozásait kapja meg. A parancsmaggal Invoke-WebRequest
lekérheti a weblap tartalmát. Ezután a Visszaadott BasicHtmlWebResponseObject Invoke-WebRequest
Hivatkozás tulajdonságát és az egyes hivatkozások Href tulajdonságát használja.
(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Href
4. példa: Választartalom írása fájlba a kért lapon definiált kódolással
Ez a példa a Invoke-WebRequest
parancsmaggal kéri le egy PowerShell-dokumentációs lap weblapjának tartalmát.
$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()
}
Az első parancs lekéri a lapot, és menti a válaszobjektumot a $Response
változóba.
A második parancs létrehoz egy StreamWriter-et a választartalom fájlba írásához. A válaszobjektum Kódolás tulajdonsága a fájl kódolásának beállítására szolgál.
Az utolsó néhány parancs írja a Content tulajdonságot a fájlba, majd eltávolítja a StreamWritert.
Vegye figyelembe, hogy a Kódolás tulajdonság null értékű, ha a webes kérelem nem ad vissza szöveges tartalmat.
5. példa: Többrészes/űrlap-adatfájl elküldése
Ez a példa a Invoke-WebRequest
parancsmagot használja egy fájl beküldéseként való feltöltésére multipart/form-data
. A fájl a következő űrlapmezőként document
lesz elküldve: text/plain
Content-Type
.c:\document.txt
$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. példa: Egyszerűsített többrészes/űrlap-adatküldés
Egyes API-k fájlokat és vegyes tartalmakat töltenek multipart/form-data
fel. Ez a példa egy felhasználói profil frissítését mutatja be.
$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
A profilűrlaphoz a következő mezők szükségesek: firstName
, lastName
, email
, avatar
, birthday
és hobbies
. Az API arra számít, hogy a felhasználói profil képe megjelenik a avatar
mezőben. Az API több hobbies
bejegyzést is elfogad, amelyet ugyanabban az űrlapon kell elküldeni.
A Kivonatoló létrehozásakor a $Form
rendszer a kulcsneveket űrlapmezőnevekként használja. Alapértelmezés szerint a HashTable értékei sztringekké alakulnak. Ha system.IO.FileInfo érték van jelen, a fájl tartalma el lesz küldve. Ha egy gyűjtemény, például tömbök vagy listák találhatók, az űrlapmező többször is elküldve lesz.
A kulcs használatával Get-Item
avatar
az FileInfo
objektum értékként van beállítva. Az eredmény az, hogy a rendszerkép adatai el lesznek jdoe.png
küldve.
Ha megad egy listát a hobbies
kulcsnak, a hobbies
mező minden egyes listaelemnél egyszer szerepel a beküldésekben.
7. példa: Az Invoke-WebRequest nem sikeres üzenetei
Sikertelen HTTP-üzenet (404, 500 stb.) esetén Invoke-WebRequest
a rendszer nem ad vissza kimenetet, és leállási hibát jelez. A hiba elhárításához és a StatusCode megtekintéséhez a végrehajtást blokkba try/catch
zárhatja.
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
A megszüntetési hibát a catch
blokk észleli, amely lekéri a StatusCode-ot a Kivétel objektumból.
8. példa: Egyszerre több fájl letöltése
A Invoke-WebRequest
parancsmag egyszerre csak egy fájlt tud letölteni. Az alábbi példa több szálfeladat létrehozását használja Start-ThreadJob
több fájl egyidejű letöltéséhez.
$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. példa: Az élőfej ellenőrzése kihagyása
A parancsmag alapértelmezés szerint Invoke-WebRequest
ellenőrzi a szabvány által definiált értékformátummal rendelkező jól ismert fejlécek értékeit. Az alábbi példa bemutatja, hogy ez az ellenőrzés hogyan okozhat hibát, és hogyan használhatja a SkipHeaderValidation paramétert az érvénytelenül formázott értékeket toleráló végpontok értékeinek ellenőrzésének elkerülésére.
$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 egy szolgáltatás, amely információkat ad vissza a webes kérelmekről és a hibaelhárításra adott válaszokról. A $Uri
változó a /headers
szolgáltatás végpontjára van rendelve, amely egy kérés fejléceit adja vissza a válaszában lévő tartalomként.
A If-Match
kérelem fejléce az RFC-7232 3.1 szakaszban van definiálva, és megköveteli, hogy az adott fejléc értékét a környező idézőjelekkel együtt definiálja. A $InvalidHeaders
változóhoz egy kivonattáblát rendelünk, amelynek értéke If-Match
érvénytelen, mert a függvény ahelyett van definiálva"12345"
12345
.
Az érvénytelen fejléceket tartalmazó hívás Invoke-WebRequest
hibaüzenetet ad vissza, amely azt jelzi, hogy a formázott érték érvénytelen. A rendszer nem küldi el a kérelmet a végpontnak.
A SkipHeaderValidation paraméterrel történő hívás Invoke-WebRequest
figyelmen kívül hagyja az érvényesítési hibát, és elküldi a kérést a végpontnak. Mivel a végpont tolerálja a nem megfelelő fejlécértékeket, a parancsmag hiba nélkül adja vissza a válaszobjektumot.
10. példa: Kérés küldése HTTP 2.0 használatával
Ez a példa a HTTP 2.0 protokoll használatával lekéri egy weblap hivatkozásait. A parancsmaggal Invoke-WebRequest
lekérheti a weblap tartalmát. Ezután a Visszaadott BasicHtmlWebResponseObject Invoke-WebRequest
Hivatkozás tulajdonságát és az egyes hivatkozások Href tulajdonságát használja.
(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Href
11. példa: Kérés küldése Unix szoftvercsatornás alkalmazásnak
Egyes alkalmazások, például a Docker, egy Unix-szoftvercsatornát tesznek elérhetővé a kommunikációhoz. Ez a példa a Docker API használatával lekérdezi a Docker-rendszerképek listáját. A parancsmag a Unix-szoftvercsatornával csatlakozik a Docker-démonhoz.
Invoke-WebRequest -Uri "http://localhost/v1.40/images/json/" -UnixSocket "/var/run/docker.sock"
Paraméterek
-AllowInsecureRedirect
Engedélyezi a HTTPS-ről a HTTP-be való átirányítást. Alapértelmezés szerint a HTTPS-ről HTTP-ra átirányított kérések hibát eredményeznek, és a kérés megszakad, hogy a rendszer megakadályozza a nem titkosított kapcsolatokon keresztüli, egyszerű szöveges kommunikációt. Ha ezt a viselkedést saját kockázatára szeretné felülbírálni, használja az AllowInsecureRedirect paramétert.
Ez a paraméter a PowerShell 7.4-ben lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-AllowUnencryptedAuthentication
Lehetővé teszi a hitelesítő adatok és titkos kódok titkosítás nélküli kapcsolatokon keresztüli küldését. Alapértelmezés szerint olyan URI-val adja meg a hitelesítő adatokat vagy bármely hitelesítési beállítást, amely nem egy hibával https://
kezdődik, és a kérés megszakad, hogy megakadályozza a titkos kulcsok véletlen közlését egyszerű szövegben, titkosítatlan kapcsolatokon keresztül. Ha saját kockázatára szeretné felülbírálni ezt a viselkedést, adja meg az AllowUnencryptedAuthentication paramétert.
Figyelmeztetés
A paraméter használata nem biztonságos, és nem ajánlott. Csak az örökölt rendszerekkel való kompatibilitás érdekében érhető el, amelyek nem tudnak titkosított kapcsolatokat biztosítani. Saját felelősségre használható.
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Authentication
Megadja a kérelemhez használandó explicit hitelesítési típust. Az alapértelmezett érték Nincs. A hitelesítési paraméter nem használható a UseDefaultCredentials paraméterrel.
Elérhető hitelesítési beállítások:
None
: Ez az alapértelmezett beállítás, ha a hitelesítés nincs megadva. A rendszer nem használ explicit hitelesítést.Basic
: Hitelesítő adatokat igényel. A hitelesítő adatokat a rendszer RFC 7617 Egyszerű hitelesítésAuthorization: Basic
fejlécként küldibase64(user:password)
el a következő formátumban: .Bearer
: A Token paramétert igényli. Egy RFC 6750-fejlécetAuthorization: Bearer
küld a megadott jogkivonattal.OAuth
: A Token paramétert igényli. Egy RFC 6750-fejlécetAuthorization: Bearer
küld a megadott jogkivonattal.
A hitelesítés megadása felülbírálja Authorization
a fejlécekhez megadott vagy a WebSession szolgáltatásban szereplő fejléceket.
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | WebAuthenticationType |
Elfogadott értékek: | None, Basic, Bearer, OAuth |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Body
A kérelem törzsét adja meg. A törzs a fejléceket követő kérés tartalma.
A törzsértékeket is becsúszthatja a parancsba Invoke-WebRequest
.
A Törzs paraméterrel megadhatja a lekérdezési paraméterek listáját, vagy megadhatja a válasz tartalmát. Lekérdezési paraméterek esetén a parancsmag a System.Net.WebUtility.UrlEncode metódust használja a kulcs-érték párok kódolásához. Az URL-címek kódolási sztringjeiről további információt az UrlEncode() metódusreferenciában talál.
Ha a bemenet POST kérés, és a törzs egy sztring, az első egyenlőségjel (=
) bal oldalán lévő érték kulcsként van beállítva az űrlapadatokban, a fennmaradó szöveg pedig értékként van beállítva. Több kulcs megadásához használjon egy IDictionary objektumot, például egy kivonattáblát a törzshöz.
Ha a bemenet get kérés, és a törzs egy IDictionary (általában kivonattáblázat), a rendszer lekérdezési paraméterekként hozzáadja a törzset az URI-hoz. Más kéréstípusok (például PATCH) esetén a törzs a kérés törzsének értékeként van beállítva szabványos name=value
formátumban, URL-kódolt értékekkel.
Ha a bemenet System.Xml.XmlNode objektum, és az XML-deklaráció megad egy kódolást, a rendszer a kérelemben szereplő adatok kódolását használja, kivéve, ha a ContentType paraméter felülírja.
A Törzs paraméter egy objektumot System.Net.Http.MultipartFormDataContent
is elfogad. Ez megkönnyíti a multipart/form-data
kéréseket. Ha egy TöbbpartFormDataContent objektumot ad meg a törzshöz, a Tartalomtípus, fejlécek vagy WebSession paramétereknek megadott tartalomhoz kapcsolódó fejléceket felülbírálják a MultipartFormDataContent objektum tartalomfejlécei. Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | Object |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
-Certificate
Megadja a biztonságos webkérelemhez használt ügyféltanúsítványt. Adjon meg egy változót, amely a tanúsítványt lekérő tanúsítványt vagy parancsot vagy kifejezést tartalmazza.
Tanúsítvány kereséséhez használja Get-PfxCertificate
vagy használja a Get-ChildItem
tanúsítvány (Cert:
) meghajtón található parancsmagot. Ha a tanúsítvány érvénytelen, vagy nem rendelkezik megfelelő jogosultságtal, a parancs meghiúsul.
Típus: | X509Certificate |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-CertificateThumbprint
Egy olyan felhasználói fiók digitális nyilvános kulcsú tanúsítványát (X509) adja meg, amely jogosult a kérés elküldésére. Adja meg a tanúsítvány ujjlenyomatát.
A tanúsítványok az ügyféltanúsítvány-alapú hitelesítésben használatosak. A tanúsítványok csak helyi felhasználói fiókokhoz rendelhetők le, tartományi fiókokhoz nem.
A tanúsítvány ujjlenyomatának megtekintéséhez használja a vagy Get-ChildItem
a Get-Item
parancsot a tanúsítvány Cert:\CurrentUser\My
megkereséséhez.
Feljegyzés
Ez a funkció csak Windows operációsrendszer-platformokon támogatott.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-ConnectionTimeoutSeconds
Megadja, hogy mennyi ideig lehet függőben a kérelem, mielőtt túllépi az időkorlátot. Adjon meg egy értéket másodpercek alatt. Az alapértelmezett érték (0) meghatározatlan időtúllépést ad meg.
A dns-lekérdezések visszatérése vagy időtúllépése akár 15 másodpercet is igénybe vehet. Ha a kérés tartalmaz egy feloldást igénylő gazdagépnevet, és a ConnectionTimeoutSeconds értéket nullánál nagyobb, de 15 másodpercnél rövidebb értékre állítja, az 15 másodpercet vagy többet is igénybe vehet a WebException elvetése előtt, és a kérés túllépi az időkorlátot.
Ez a paraméter lecserélte a TimeoutSec paramétert a PowerShell 7.4-ben. A TimeoutSec a ConnectionTimeoutSeconds aliasaként is használható.
Típus: | Int32 |
Aliasok: | TimeoutSec |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-ContentType
Megadja a webes kérelem tartalomtípusát.
Ha a ContentType értéke tartalmazza a kódolási formátumot (mint), charset
a parancsmag ezt a formátumot használja a webes kérelem törzsének kódolásához. Ha a ContentType nem ad meg kódolási formátumot, a rendszer ehelyett az alapértelmezett kódolási formátumot használja. Példa egy kódolási formátummal text/plain; charset=iso-8859-5
rendelkező ContentType-ra, amely a latin/cirill betűs ábécét adja meg.
Ha ez a paraméter nincs megadva, és a kérelem metódusa POST vagy PUT, Invoke-WebRequest
a tartalomtípust a következőre application/x-www-form-urlencoded
állítja be: . Ellenkező esetben a tartalomtípus nincs megadva a hívásban.
A ContentType felülbírálva van, ha egy MultipartFormDataContent objektumot ad meg a törzshöz.
A PowerShell 7.4-től kezdődően, ha ezt a paramétert és a Fejlécek paramétert is használja a Content-Type
fejléc definiálásához, a ContentType paraméterben megadott érték lesz használva.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Credential
Olyan felhasználói fiókot ad meg, amely rendelkezik a kérés elküldéséhez szükséges engedéllyel. Alapértelmezés szerint az aktuális felhasználó.
Írjon be egy felhasználónevet (például User01 vagy Domain01\User01), vagy írjon be egy PSCredential objektumot, amelyet a Get-Credential
parancsmag hoz létre.
A hitelesítő adatok önállóan vagy bizonyos hitelesítési paraméterekkel együtt használhatók. Ha egyedül használja, csak akkor adja meg a hitelesítő adatokat a távoli kiszolgálónak, ha a távoli kiszolgáló hitelesítési kérést küld. Ha hitelesítési beállításokat használ, a rendszer kifejezetten elküldi a hitelesítő adatokat.
A hitelesítő adatokat PSCredential objektum tárolja, a jelszót pedig SecureStringként tárolja a rendszer.
Feljegyzés
További információ a SecureString adatvédelemről: Mennyire biztonságos a SecureString?.
Típus: | PSCredential |
Position: | Named |
Alapértelmezett érték: | Current user |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-CustomMethod
A webes kérelemhez használt egyéni metódust adja meg. Ez akkor használható, ha a végpont által igényelt kérelemmetódus nem érhető el a metódusban. A Metódus és a CustomMethod nem használható együtt.
Ez a példa HTTP-kérést TEST
küld az API-nak:
Invoke-WebRequest -uri 'https://api.contoso.com/widget/' -CustomMethod 'TEST'
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | String |
Aliasok: | CM |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-DisableKeepAlive
Azt jelzi, hogy a parancsmag hamis értékre állítja a HTTP-fejlécBen lévő KeepAlive értéket. Alapértelmezés szerint a KeepAlive igaz. A KeepAlive állandó kapcsolatot létesít a kiszolgálóval a későbbi kérések megkönnyítése érdekében.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Form
A szótárt beküldéssé multipart/form-data
alakítja át. Az űrlap nem használható a Body alkalmazással.
A ContentType használata esetén a rendszer figyelmen kívül hagyja.
A szótár kulcsai az űrlapmezők neveként használatosak. Alapértelmezés szerint az űrlapértékek sztringértékekké alakulnak.
Ha az érték System.IO.FileInfo objektum, akkor a bináris fájl tartalma el lesz küldve. A fájl neve fájlnév tulajdonságként lesz elküldve. A MIME típusa a következő application/octet-stream
. Get-Item
a System.IO.FileInfo objektum biztosításának egyszerűsítésére használható.
$Form = @{ önéletrajz = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }
Ha az érték gyűjteménytípus, például tömbök vagy listák, a program többször küldi el a mező értékét. A lista értékei alapértelmezés szerint sztringekként vannak kezelve. Ha az érték System.IO.FileInfo objektum, akkor a bináris fájl tartalma el lesz küldve. A beágyazott gyűjtemények nem támogatottak.
$Form = @{ tags = 'Vacation', 'Olaszország', '2017' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }
A fenti példában a tags
mező háromszor van megadva az űrlapon, egyszer az egyes Vacation
, Italy
és 2017
. A pictures
mező a mappában lévő összes fájlhoz egyszer is elküldve 2017-Italy
lesz. A mappában lévő fájlok bináris tartalma lesz elküldve értékekként.
Ez a funkció a PowerShell 6.1.0-s verzióban lett hozzáadva.
Típus: | IDictionary |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Headers
Megadja a webes kérelem fejléceit. Adjon meg egy kivonattáblát vagy szótárt.
A tartalommal kapcsolatos fejlécek, például Content-Type
felülbírálva lesznek, ha egy MultipartFormDataContent objektumot ad meg a Törzshöz.
A PowerShell 7.4-től kezdve, ha ezt a paramétert használja a Content-Type
fejléc definiálásához és a ContentType paraméter használatához, a Rendszer a ContentType paraméterben megadott értéket használja.
Típus: | IDictionary |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-HttpVersion
A kérelemhez használt HTTP-verziót adja meg. Az alapértelmezett érték 1.1
.
Az érvényes értékek a következők:
- 1,0
- 1,1
- 2,0
- 3,0
Típus: | Version |
Position: | Named |
Alapértelmezett érték: | 1.1 |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-InFile
Lekéri a webes kérelem tartalmát egy fájlból. Adjon meg egy elérési utat és egy fájlnevet. Ha kihagyja az elérési utat, az alapértelmezett hely az aktuális hely.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-MaximumRedirection
Megadja, hogy a PowerShell hányszor irányítja át a kapcsolatot egy másodlagos egységes erőforrás-azonosítóhoz (URI), mielőtt a kapcsolat meghiúsul. Az alapértelmezett érték 5. A 0 (nulla) érték megakadályozza az összes átirányítást.
Típus: | Int32 |
Position: | Named |
Alapértelmezett érték: | 5 |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-MaximumRetryCount
Megadja, hogy a PowerShell hányszor próbálkozik újra egy kapcsolattal, ha 400 és 599 közötti hibakód érkezik, beleértve vagy 304-et. Lásd még a RetryIntervalSec paramétert az újrapróbálkozések számának megadásához.
Típus: | Int32 |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Method
A webes kérelemhez használt metódust adja meg. A paraméter elfogadható értékei a következők:
Default
Delete
Get
Head
Merge
Options
Patch
Post
Put
Trace
A CustomMethod paraméter a fent nem felsorolt kérelemmetódusokhoz használható.
Típus: | WebRequestMethod |
Elfogadott értékek: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-NoProxy
Azt jelzi, hogy a parancsmagnak nem szabad proxyt használnia a cél eléréséhez. Ha meg kell kerülnie a környezetben konfigurált proxyt, használja ezt a kapcsolót. Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-OperationTimeoutSeconds
Ez az időtúllépés a streamen belüli adatolvasásokra vonatkozik, nem pedig a stream teljes idejére. Az alapértelmezett érték (0) meghatározatlan időtúllépést ad meg.
Az érték 30 másodpercre állítása azt jelenti, hogy a streamben lévő adatok közötti 30 másodpercnél hosszabb késleltetés megszakítja a kérést. A letöltéshez több percig tartó nagy fájl csak akkor fejeződik be, ha a stream 30 másodpercnél hosszabb ideig nem áll le.
Típus: | Int32 |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-OutFile
Alapértelmezés szerint Invoke-WebRequest
visszaadja az eredményeket a folyamatnak. Az OutFile paraméter használatakor a rendszer menti az eredményeket a megadott fájlba, és nem adja vissza a folyamatnak. Adjon meg egy elérési utat és egy fájlnevet. Ha az eredményeket egy fájlba és a folyamatba szeretné elküldeni, adja hozzá a Passthru paramétert.
Ha kihagyja az elérési utat, az alapértelmezett hely az aktuális hely. A név konstans elérési útként lesz kezelve.
A szögletes zárójeleket ([]
) tartalmazó neveket egyetlen idézőjelbe ('
) kell befoglalni.
A PowerShell 7.4-től kezdve megadhatja a mappa elérési útját a fájlnév nélkül. Ha így tesz, a parancs a feloldott URI utolsó szegmensének fájlnevét használja az átirányítások után. Amikor megadja az OutFile mappa elérési útját, nem használhatja az Önéletrajz paramétert.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-PassThru
Azt jelzi, hogy a parancsmag a fájlba írás mellett az eredményeket is visszaadja. Ez a paraméter csak akkor érvényes, ha az OutFile paramétert is használja a parancsban.
Feljegyzés
A PassThru paraméter használatakor a kimenet a folyamatba lesz írva, de a fájl nem jön létre. Ezt a PowerShell 7.5-preview.4-ben javítottuk. További információ: PowerShell-probléma #15409.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-PreserveAuthorizationOnRedirect
Azt jelzi, hogy a parancsmagnak jelen esetben meg kell őriznie a Authorization
fejlécet az átirányítások között.
Alapértelmezés szerint a parancsmag az átirányítás előtt csíkozza a Authorization
fejlécet. A paraméter megadása letiltja ezt a logikát azokban az esetekben, amikor a fejlécet el kell küldeni az átirányítási helyre.
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-PreserveHttpMethodOnRedirect
Azt jelzi, hogy a parancsmagnak meg kell őriznie a kérés metódusát az átirányítások között.
A parancsmag alapértelmezés szerint az átirányításkor módosítja a GET
metódust. A paraméter megadása letiltja ezt a logikát, így biztosítható, hogy a kívánt metódus átirányítással is használható legyen.
Ez a funkció a PowerShell 7.4-ben lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Proxy
Proxykiszolgálót ad meg a kéréshez, ahelyett, hogy közvetlenül csatlakozik az internetes erőforráshoz. Adja meg egy hálózati proxykiszolgáló URI-ját.
Típus: | Uri |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-ProxyCredential
Olyan felhasználói fiókot ad meg, amely jogosult a proxyparaméter által megadott proxykiszolgáló használatára. Alapértelmezés szerint az aktuális felhasználó.
Írjon be egy felhasználónevet, például User01
vagy Domain01\User01
írjon be egy PSCredential objektumot, például a parancsmag által Get-Credential
létrehozott objektumot.
Ez a paraméter csak akkor érvényes, ha a proxyparamétert a parancsban is használja. Ugyanabban a parancsban nem használhatja a ProxyCredential és a ProxyUseDefaultCredentials paramétereket.
Típus: | PSCredential |
Position: | Named |
Alapértelmezett érték: | Current user |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-ProxyUseDefaultCredentials
Azt jelzi, hogy a parancsmag az aktuális felhasználó hitelesítő adatait használja a proxyparaméter által megadott proxykiszolgáló eléréséhez.
Ez a paraméter csak akkor érvényes, ha a proxyparamétert a parancsban is használja. Ugyanabban a parancsban nem használhatja a ProxyCredential és a ProxyUseDefaultCredentials paramétereket.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Resume
Minden tőle telhetőt megtesz egy részleges fájl letöltésének folytatására. Az önéletrajzhoz OutFile szükséges.
Az önéletrajz csak a helyi fájl és a távoli fájl méretén működik, és nem végez más ellenőrzést arról, hogy a helyi fájl és a távoli fájl megegyezik-e.
Ha a helyi fájlméret kisebb, mint a távoli fájlméret, akkor a parancsmag megpróbálja folytatni a fájl letöltését, és hozzáfűzi a fennmaradó bájtokat a fájl végéhez.
Ha a helyi fájlméret megegyezik a távoli fájl méretével, akkor nem történik művelet, és a parancsmag feltételezi, hogy a letöltés már befejeződött.
Ha a helyi fájl mérete nagyobb, mint a távoli fájlméret, akkor a rendszer felülírja a helyi fájlt, és a teljes távoli fájlt újra letölti. Ez a viselkedés ugyanaz, mint a Folytatás nélküli OutFile használata.
Ha a távoli kiszolgáló nem támogatja a letöltés folytatását, a rendszer felülírja a helyi fájlt, és a teljes távoli fájlt újra letölti. Ez a viselkedés ugyanaz, mint a Folytatás nélküli OutFile használata.
Ha a helyi fájl nem létezik, a rendszer létrehozza a helyi fájlt, és letölti a teljes távoli fájlt. Ez a viselkedés ugyanaz, mint a Folytatás nélküli OutFile használata.
Ez a funkció a PowerShell 6.1.0-s verzióban lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-RetryIntervalSec
Megadja a kapcsolat újrapróbálkozásai közötti időközt, ha 400 és 599 közötti hibakód érkezik, beleértve vagy 304-et. Az újrapróbálkozások számának megadásához lásd a MaximumRetryCount paramétert is. Az értéknek az és a [int]::MaxValue
közötti 1
értéknek kell lennie.
Ha a hibakód 429, és a válasz tartalmazza az Újrapróbálkozó tulajdonságot a fejléceiben, a parancsmag ezt az értéket használja az újrapróbálkozási időközhöz, még akkor is, ha ez a paraméter meg van adva.
Típus: | Int32 |
Position: | Named |
Alapértelmezett érték: | 5 |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-SessionVariable
Megadja azt a változót, amelyhez ez a parancsmag létrehoz egy webkérelem-munkamenetet, és menti azt az értékben.
Adjon meg egy változónevet a dollárjel ($
) szimbólum nélkül.
Amikor megad egy munkamenet-változót, létrehoz egy webkérelem munkamenet-objektumot, Invoke-WebRequest
és hozzárendeli azt egy, a PowerShell-munkamenetben megadott névvel rendelkező változóhoz. A változót a parancs befejeződése után használhatja a munkamenetben.
A PowerShell 7.4 előtt a webes kérelem munkamenete nem állandó kapcsolat. Ez egy objektum, amely információkat tartalmaz a kapcsolatról és a kérésről, beleértve a cookie-kat, a hitelesítő adatokat, a maximális átirányítási értéket és a felhasználói ügynök sztringjét. Ezzel megoszthatja az állapotot és az adatokat a webes kérések között.
A PowerShell 7.4-től kezdve a webes kérelem munkamenete állandó, amíg a munkamenet tulajdonságait nem bírálja felül egy későbbi kérés. Ha így van, a parancsmag újra létrehozza a munkamenetet az új értékekkel. Az állandó munkamenetek csökkentik az ismétlődő kérések többletterhelését, így sokkal gyorsabbak lesznek.
A webkérelem-munkamenet későbbi webes kérelmekben való használatához adja meg a munkamenet változóját a WebSession paraméter értékében. A PowerShell a webkérelem munkamenet-objektumában lévő adatokat használja az új kapcsolat létrehozásakor. Ha felül szeretne bírálni egy értéket a webes kérelem munkamenetében, használjon egy parancsmagparamétert, például UserAgent vagy Credential. A paraméterértékek elsőbbséget élveznek a webes kérelem munkamenetében lévő értékekkel szemben.
Ugyanabban a parancsban nem használhatja a SessionVariable és a WebSession paramétereket.
Típus: | String |
Aliasok: | SV |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-SkipCertificateCheck
Kihagyja a tanúsítványérvényesítési ellenőrzéseket. Ez magában foglalja az összes ellenőrzést, például a lejáratot, a visszavonást, a megbízható legfelső szintű szolgáltatót stb.
Figyelmeztetés
A paraméter használata nem biztonságos, és nem ajánlott. Ez a kapcsoló csak az ismert gazdagépek ellen használható, tesztelés céljából önaláírt tanúsítvány használatával. Saját felelősségre használható.
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-SkipHeaderValidation
Azt jelzi, hogy a parancsmagnak érvényesítés nélkül kell fejléceket hozzáadnia a kérelemhez.
Ezt a kapcsolót olyan webhelyekhez kell használni, amelyek olyan fejlécértékeket igényelnek, amelyek nem felelnek meg a szabványoknak. A kapcsoló megadása letiltja az érvényesítést, hogy az érték ne legyen bejelölve. Ha meg van adva, a rendszer minden fejlécet érvényesítés nélkül ad hozzá.
Ez a kapcsoló letiltja a ContentType, a Fejlécek és a UserAgent paramétereknek átadott értékek érvényesítését.
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-SkipHttpErrorCheck
Ez a paraméter miatt a parancsmag figyelmen kívül hagyja a HTTP-hibaállapotokat, és folytatja a válaszok feldolgozását. A hibaválaszok ugyanúgy lesznek megírva a folyamatba, mintha sikeresek lennének.
Ez a paraméter a PowerShell 7-ben lett bevezetve.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-SslProtocol
Beállítja a webes kéréshez megengedett SSL-/TLS-protokollokat. Alapértelmezés szerint a rendszer által támogatott SSL-/TLS-protokollok engedélyezettek. Az SslProtocol lehetővé teszi bizonyos protokollokra való korlátozást megfelelőségi célokból.
Ezek az értékek jelölőalapú számbavételként vannak definiálva. Több érték kombinálásával több jelölőt is beállíthat ezzel a paraméterrel. Az értékek átadhatók az SslProtocol paraméternek értéktömbként vagy az értékek vesszővel elválasztott sztringjeként. A parancsmag bináris VAGY művelettel egyesíti az értékeket. Az értékek tömbként való átadása a legegyszerűbb lehetőség, és lehetővé teszi a tabulátorkiegészítés használatát is az értékeken. Előfordulhat, hogy nem tud több beállítást meghatározni minden platformon.
Feljegyzés
Nem Windows-platformokon előfordulhat, hogy nem lehet megadni Tls
vagy Tls12
lehetőségként. Tls13
A támogatás nem minden operációs rendszeren érhető el, és operációs rendszerenként kell ellenőrizni.
Ez a funkció a PowerShell 6.0.0-s verzióban lett hozzáadva, és a Tls13
Támogatás a PowerShell 7.1-ben lett hozzáadva.
Típus: | WebSslProtocol |
Elfogadott értékek: | Default, Tls, Tls11, Tls12 |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Token
A kérelembe belefoglalandó OAuth vagy Bearer jogkivonat. A jogkivonatot bizonyos hitelesítési beállítások megkövetelik. Önállóan nem használható.
A jogkivonat a jogkivonatot SecureString
tartalmazza. A jogkivonat manuális megadásához használja a következőket:
Invoke-WebRequest -Uri $uri -Authentication OAuth -Token (Read-Host -AsSecureString)
Ezt a paramétert a PowerShell 6.0-ban vezettük be.
Típus: | SecureString |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-TransferEncoding
Megadja az átvitelkódoló HTTP-válaszfejléc értékét. A paraméter elfogadható értékei a következők:
Chunked
Compress
Deflate
GZip
Identity
Típus: | String |
Elfogadott értékek: | chunked, compress, deflate, gzip, identity |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-UnixSocket
Megadja annak a Unix-szoftvercsatornának a nevét, amelyhez csatlakozni szeretne. Ez a paraméter a Unix-alapú rendszereken és a Windows 1803-es és újabb verzióiban támogatott. További információ a Unix-szoftvercsatornák Windows-támogatásáról: Windows/WSL Interop with AF_UNIX blogbejegyzés.
Ez a paraméter a PowerShell 7.4-ben lett hozzáadva.
Típus: | UnixDomainSocketEndPoint |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Uri
Annak az internetes erőforrásnak az egységes erőforrás-azonosítóját (URI) adja meg, amelyre a webes kérést küldi. Adjon meg egy URI-t. Ez a paraméter csak a HTTP-t vagy a HTTPS-t támogatja.
Ez a paraméter kötelező. Az Uri paraméternév megadása nem kötelező.
Típus: | Uri |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-UseBasicParsing
Ez a paraméter elavult. A PowerShell 6.0.0-tól kezdve minden webes kérés csak alapszintű elemzést használ. Ez a paraméter csak a visszamenőleges kompatibilitás érdekében érhető el, és annak bármilyen használata nincs hatással a parancsmag működésére.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-UseDefaultCredentials
Azt jelzi, hogy a parancsmag az aktuális felhasználó hitelesítő adatait használja a webes kérés elküldéséhez. Ez nem használható hitelesítéssel vagy hitelesítő adatokkal, és nem minden platformon támogatott.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-UserAgent
Megadja a webkérelemhez tartozó felhasználói ügynök sztringet.
Az alapértelmezett felhasználói ügynök az egyes operációs rendszerekre és platformokra vonatkozó enyhe változatokhoz hasonló Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0
.
Ha egy webhelyet a legtöbb internetböngésző által használt szabványos felhasználói ügynök sztringgel szeretne tesztelni, használja a PSUserAgent osztály tulajdonságait, például a Chrome, a FireFox, az InternetExplorer, az Opera és a Safari tulajdonságait.
A következő parancs például a felhasználói ügynök sztringet használja az Internet Explorerhez: Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-WebSession
Webkérelem-munkamenetet határoz meg. Adja meg a változó nevét, beleértve a dollárjelet ($
).
Ha felül szeretne bírálni egy értéket a webes kérelem munkamenetében, használjon egy parancsmagparamétert, például UserAgent vagy Credential. A paraméterértékek elsőbbséget élveznek a webes kérelem munkamenetében lévő értékekkel szemben. A tartalommal kapcsolatos fejléceket, például Content-Type
a többpartFormDataContent objektum törzshöz való megadásakor is felül kell bírálni.
A távoli munkamenettől eltérően a webes kérelem munkamenete nem állandó kapcsolat. Ez egy objektum, amely információkat tartalmaz a kapcsolatról és a kérésről, beleértve a cookie-kat, a hitelesítő adatokat, a maximális átirányítási értéket és a felhasználói ügynök sztringjét. Ezzel megoszthatja az állapotot és az adatokat a webes kérések között.
Webkérelem-munkamenet létrehozásához adjon meg egy változónevet dollárjel nélkül egy parancs SessionVariable paraméterének értékébeInvoke-WebRequest
. Invoke-WebRequest
létrehozza a munkamenetet, és menti a változóba. A következő parancsokban használja a változót a WebSession paraméter értékeként.
Ugyanabban a parancsban nem használhatja a SessionVariable és a WebSession paramétereket.
Típus: | WebRequestSession |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
Erre a parancsmagra egy webes kérés törzsét is becsúszthatja.
Kimenetek
Ez a parancsmag a webes kérés eredményét képviselő válaszobjektumot adja vissza.
Jegyzetek
A PowerShell a következő aliasokat Invoke-WebRequest
tartalmazza:
- Minden platform:
iwr
A PowerShell 6.0.0-tól Invoke-WebRequest
kezdve csak az alapszintű elemzést támogatja.
További információ: BasicHtmlWebResponseObject.
A .NET Core 3.1 változásai miatt a PowerShell 7.0-s és újabb verziói a HttpClient.DefaultProxy tulajdonsággal határozzák meg a proxykonfigurációt.
A tulajdonság értékét a platform határozza meg:
- Windows esetén: Beolvassa a proxykonfigurációt a környezeti változókból. Ha ezek a változók nincsenek definiálva, a tulajdonság a felhasználó proxybeállításaiból származik.
- MacOS esetén: Beolvassa a proxykonfigurációt a környezeti változókból. Ha ezek a változók nincsenek definiálva, a tulajdonság a rendszer proxybeállításaiból származik.
- Linux esetén: Beolvassa a proxykonfigurációt a környezeti változókból. Ha ezek a változók nincsenek definiálva, a tulajdonság inicializál egy nem konfigurált példányt, amely minden címet átad.
A Windows- és Unix-alapú platformokon az inicializáláshoz DefaultProxy
használt környezeti változók a következők:
HTTP_PROXY
: a HTTP-kérelmekben használt proxykiszolgáló állomásneve vagy IP-címe.HTTPS_PROXY
: a HTTPS-kérelmekben használt proxykiszolgáló állomásneve vagy IP-címe.ALL_PROXY
: a HTTP- és HTTPS-kérelmekben használt proxykiszolgáló állomásneve vagyHTTPS_PROXY
IP-címe, haHTTP_PROXY
nincs meghatározva.NO_PROXY
: a proxyzásból kizárandó gazdagépnevek vesszővel tagolt listája.
A PowerShell 7.4 támogatja a Brotli tömörítési algoritmust.