Freigeben über


Invoke-WebRequest

Ruft Inhalte von einer Webseite im Internet ab.

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]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      [-Method <WebRequestMethod>]
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-ProxyUseDefaultCredentials]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<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]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      [-Method <WebRequestMethod>]
      -NoProxy
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<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]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      -CustomMethod <String>
      [-Proxy <Uri>]
      [-ProxyCredential <PSCredential>]
      [-ProxyUseDefaultCredentials]
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<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]
      [-TimeoutSec <Int32>]
      [-Headers <IDictionary>]
      [-MaximumRedirection <Int32>]
      [-MaximumRetryCount <Int32>]
      [-RetryIntervalSec <Int32>]
      -CustomMethod <String>
      -NoProxy
      [-Body <Object>]
      [-Form <IDictionary>]
      [-ContentType <String>]
      [-TransferEncoding <String>]
      [-InFile <String>]
      [-OutFile <String>]
      [-PassThru]
      [-Resume]
      [-SkipHttpErrorCheck]
      [-PreserveAuthorizationOnRedirect]
      [-SkipHeaderValidation]
      [<CommonParameters>]

Beschreibung

Das Invoke-WebRequest Cmdlet sendet HTTP- und HTTPS-Anforderungen an eine Webseite oder einen Webdienst. Er analysiert die Antwort und gibt Auflistungen von Links, Bildern und anderen wichtigen HTML-Elementen zurück.

Dieses Cmdlet wurde in PowerShell 3.0 eingeführt.

Ab PowerShell 7.0 werden Proxykonfigurationen unterstützt, Invoke-WebRequest die durch Umgebungsvariablen definiert werden. Weitere Informationen finden Sie im Abschnitt Notizen dieses Artikels.

Wichtig

Die Beispiele in diesem Artikel verweisen auf Hosts in der contoso.com Domäne. Dies ist eine fiktive Domäne, die von Microsoft als Beispiele verwendet wird. Die Beispiele sollen zeigen, wie die Cmdlets verwendet werden. Da die contoso.com Websites jedoch nicht vorhanden sind, funktionieren die Beispiele nicht. Passen Sie die Beispiele an Hosts in Ihrer Umgebung an.

Beispiele

Beispiel 1: Senden einer Webanforderung

In diesem Beispiel wird das Invoke-WebRequest Cmdlet verwendet, um eine Webanforderung an die Bing.com-Website zu senden.

$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

Der erste Befehl gibt die Anforderung aus und speichert die Antwort in der $Response Variablen.

Der zweite Befehl ruft ein Beliebiges InputField ab , bei dem die Name-Eigenschaft wie "* Value"lautet. Die gefilterten Ergebnisse werden an weitergeleitet, um Select-Object die Eigenschaften Name und Wert auszuwählen.

Beispiel 2: Verwenden eines zustandsbehafteten Webdiensts

In diesem Beispiel wird gezeigt, wie Sie das Invoke-WebRequest Cmdlet mit einem zustandsbehafteten Webdienst verwenden.

$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

Der erste Aufruf, um eine Anmeldeanforderung zu Invoke-WebRequest senden. Der Befehl gibt einen Wert von Session für den Wert des SessionVariable-Parameters an. Nach Abschluss des Befehls enthält die $LoginResponse Variable ein BasicHtmlWebResponseObject und die $Session Variable ein WebRequestSession -Objekt. Dadurch wird der Benutzer an der Website protokolliert.

Der zweite Aufruf zum Invoke-WebRequest Abrufen des Benutzerprofils erfordert, dass der Benutzer bei der Website angemeldet ist. Die in der Variablen gespeicherten $Session Sitzungsdaten stellen Sitzungscookies für die Website bereit, die während der Anmeldung erstellt wurde.

In diesem Beispiel werden die Links auf einer Webseite abgerufen. Es verwendet das Invoke-WebRequest Cmdlet, um den Inhalt der Webseite abzurufen. Anschließend werden die Links-Eigenschaft des zurückgibtden BasicHtmlWebResponseObjectInvoke-WebRequest und die Href-Eigenschaft der einzelnen Verknüpfungen verwendet.

(Invoke-WebRequest -Uri "https://aka.ms/pscore6-docs").Links.Href

Beispiel 4: Schreiben von Antwortinhalten in eine Datei mithilfe der auf der angeforderten Seite definierten Codierung

In diesem Beispiel wird das Invoke-WebRequest Cmdlet verwendet, um den Webseiteninhalt einer PowerShell-Dokumentationsseite abzurufen.

$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()
}

Der erste Befehl ruft die Seite ab und speichert das Antwortobjekt in der $Response Variablen.

Mit dem zweiten Befehl wird ein StreamWriter erstellt, mit dem der Antwortinhalt in eine Datei geschrieben werden kann. Die Encoding-Eigenschaft des Antwortobjekts wird verwendet, um die Codierung für die Datei festzulegen.

Die letzten Befehle schreiben die Content-Eigenschaft in die Datei und entsorgt dann den StreamWriter.

Beachten Sie, dass die Encoding-Eigenschaft NULL ist, wenn die Webanforderung keinen Textinhalt zurückgibt.

Beispiel 5: Übermitteln einer mehrteiligen/Formulardatendatei

In diesem Beispiel wird das Invoke-WebRequest Cmdlet zum Hochladen einer Datei als multipart/form-data Übermittlung verwendet. Die Datei c:\document.txt wird als Formularfeld document mit dem Content-Type von text/plainübermittelt.

$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'

Beispiel 6: Vereinfachte mehrteilige/Formulardatenübermittlung

Einige APIs erfordern multipart/form-data Übermittlungen, um Dateien und gemischte Inhalte hochzuladen. In diesem Beispiel wird das Aktualisieren eines Benutzerprofils veranschaulicht.

$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

Für das Profilformular sind die folgenden Felder erforderlich: firstName, lastName, email, avatar, birthdayund hobbies. Die API erwartet, dass ein Bild für das Benutzerprofilbild im avatar Feld bereitgestellt wird. Die API akzeptiert auch mehrere hobbies Einträge, die in derselben Form übermittelt werden sollen.

Beim Erstellen der $Form HashTable werden die Schlüsselnamen als Formularfeldnamen verwendet. Standardmäßig werden die Werte der HashTable in Zeichenfolgen konvertiert. Wenn ein System.IO.FileInfo-Wert vorhanden ist, wird der Dateiinhalt übermittelt. Wenn eine Sammlung wie Arrays oder Listen vorhanden ist, wird das Formularfeld mehrmals übermittelt.

Mithilfe Get-Item des Schlüssels avatar wird das FileInfo -Objekt als Wert festgelegt. Das Ergebnis ist, dass die Bilddaten für jdoe.png übermittelt werden.

Durch Das Bereitstellen einer Liste für den hobbies Schlüssel ist das hobbies Feld für jedes Listenelement einmal in den Übermittlungen vorhanden.

Beispiel 7: Abfangen von Nicht erfolgreichen Nachrichten aus Invoke-WebRequest

Wenn Invoke-WebRequest eine nicht erfolgreiche HTTP-Nachricht (404, 500 usw.) angezeigt wird, gibt sie keine Ausgabe zurück und löst einen Abbruchfehler aus. Um den Fehler abzufangen und den StatusCode anzuzeigen, können Sie die Ausführung in einen try/catch Block einschließen.

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

Der Abbruchfehler wird vom Block abgefangen, der catch den StatusCode aus dem Exception-Objekt abruft.

Beispiel 8: Herunterladen mehrerer Dateien zur gleichen Zeit

Das Invoke-WebRequest Cmdlet kann jeweils nur eine Datei herunterladen. Im folgenden Beispiel werden Start-ThreadJob mehrere Threadaufträge erstellt, um mehrere Dateien gleichzeitig herunterzuladen.

$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
}

Beispiel 9: Überspringen der Headerüberprüfung

Standardmäßig überprüft das Invoke-WebRequest Cmdlet die Werte bekannter Header, die ein standarddefiniertes Wertformat aufweisen. Das folgende Beispiel zeigt, wie diese Überprüfung einen Fehler auslösen kann und wie Sie den SkipHeaderValidation-Parameter verwenden können, um die Überprüfung von Werten für Endpunkte zu vermeiden, die ungültig formatierte Werte tolerieren.

$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 ist ein Dienst, der Informationen zu Webanforderungen und Antworten zur Problembehandlung zurückgibt. Die $Uri Variable wird dem /headers Endpunkt des Diensts zugewiesen, der die Header einer Anforderung als Inhalt der Antwort zurückgibt.

Der Anforderungsheader If-Match ist in RFC-7232 Abschnitt 3.1 definiert und erfordert, dass der Wert für diesen Header mit umgebenden Anführungszeichen definiert wird. Der $InvalidHeaders Variablen wird eine Hashtabelle zugewiesen, in der der Wert von If-Match ungültig ist, da er als 12345 anstelle von "12345"definiert ist.

Das Aufrufen Invoke-WebRequest mit den ungültigen Headern gibt einen Fehler zurück, der meldet, dass der formatierte Wert ungültig ist. Die Anforderung wird nicht an den Endpunkt gesendet.

Das Aufrufen Invoke-WebRequest mit dem SkipHeaderValidation-Parameter ignoriert den Validierungsfehler und sendet die Anforderung an den Endpunkt. Da der Endpunkt nicht kompatible Headerwerte toleriert, gibt das Cmdlet das Antwortobjekt ohne Fehler zurück.

Beispiel 10: Senden einer Anforderung mithilfe von HTTP 2.0

In diesem Beispiel werden die Links auf einer Webseite mithilfe des HTTP 2.0-Protokolls abgerufen. Es verwendet das Invoke-WebRequest Cmdlet, um den Inhalt der Webseite abzurufen. Anschließend werden die Links-Eigenschaft des zurückgibtden BasicHtmlWebResponseObjectInvoke-WebRequest und die Href-Eigenschaft der einzelnen Verknüpfungen verwendet.

(Invoke-WebRequest -Uri 'https://aka.ms/pscore6-docs' -HttpVersion 2.0).Links.Href

Parameter

-AllowUnencryptedAuthentication

Ermöglicht das Senden von Anmeldeinformationen und Geheimnissen über unverschlüsselte Verbindungen. Standardmäßig führt das Bereitstellen von Anmeldeinformationen oder einer beliebigen Authentifizierungsoption mit einem URI , der nicht mit https:// beginnt, zu einem Fehler, und die Anforderung wird abgebrochen, um zu verhindern, dass Geheimnisse unbeabsichtigt im Nur-Text über unverschlüsselte Verbindungen kommuniziert werden. Um dieses Verhalten auf eigenes Risiko zu überschreiben, geben Sie den Parameter AllowUnencryptedAuthentication an .

Warnung

Die Verwendung dieses Parameters ist nicht sicher und wird nicht empfohlen. Es wird nur zur Kompatibilität mit Legacysystemen bereitgestellt, die keine verschlüsselten Verbindungen bereitstellen können. Die Verwendung erfolgt auf eigene Gefahr.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Gibt den expliziten Authentifizierungstyp an, der für die Anforderung verwendet werden soll. Der Standardwert ist None (Kein). Der Authentication-Parameter kann nicht mit dem Parameter UseDefaultCredentials verwendet werden.

Verfügbare Authentifizierungsoptionen:

  • None: Dies ist die Standardoption, wenn die Authentifizierung nicht angegeben wird. Es wird keine explizite Authentifizierung verwendet.
  • Basic: Erfordert Anmeldeinformationen. Die Anmeldeinformationen werden als RFC 7617 Basic Authentication-Header Authorization: Basic im Format base64(user:password)gesendet.
  • Bearer: Erfordert den Token-Parameter . Sendet einen RFC 6750-Header Authorization: Bearer mit dem angegebenen Token.
  • OAuth: Erfordert den Token-Parameter . Sendet einen RFC 6750-Header Authorization: Bearer mit dem angegebenen Token.

Die Bereitstellung der Authentifizierung überschreibt alle Authorization Header, die für Header bereitgestellt oder in WebSession enthalten sind.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:WebAuthenticationType
Accepted values:None, Basic, Bearer, OAuth
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Body

Gibt den Anforderungstext an. Der Text entspricht dem Inhalt der Anforderung, der auf die Header folgt. Sie können auch einen Textwert an übergeben Invoke-WebRequest.

Der Body-Parameter kann verwendet werden, um eine Liste von Abfrageparametern oder den Inhalt der Antwort anzugeben.

Wenn es sich bei der Eingabe um eine POST-Anforderung handelt und der Text eine Zeichenfolge ist, wird der Wert links vom ersten Gleichzeichen (=) als Schlüssel in den Formulardaten festgelegt, und der verbleibende Text wird als Wert festgelegt. Um mehrere Schlüssel anzugeben, verwenden Sie ein IDictionary-Objekt , z. B. eine Hashtabelle, für den Body.

Wenn es sich bei der Eingabe um eine GET-Anforderung handelt und der Text ein IDictionary (in der Regel eine Hashtabelle) ist, wird der Text dem URI als Abfrageparameter hinzugefügt. Bei anderen Anforderungstypen (z. B. PATCH) wird der Text als Wert des Anforderungstexts im Standardformat name=value mit den Werten URL-codiert festgelegt.

Wenn die Eingabe ein System.Xml ist. Das XmlNode-Objekt und die XML-Deklaration geben eine Codierung an, die für die Daten in der Anforderung verwendet wird, es sei denn, der ContentType-Parameter überschreibt.

Der Body-Parameter akzeptiert auch ein System.Net.Http.MultipartFormDataContent -Objekt. Dies erleichtert multipart/form-data Anforderungen. Wenn ein MultipartFormDataContent-Objekt für Body bereitgestellt wird, werden alle Content-bezogenen Header, die für die Parameter ContentType, Headers oder WebSession bereitgestellt werden, von den Content-Headern des MultipartFormDataContent-Objekts überschrieben. Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Certificate

Gibt das Clientzertifikat an, das für eine sichere Webanforderung verwendet wird. Geben Sie eine Variable ein, die ein Zertifikat, einen Befehl oder einen Ausdruck enthält, durch die das Zertifikat abgerufen wird.

Um ein Zertifikat zu finden, verwenden Sie Get-PfxCertificate das Get-ChildItem Cmdlet auf dem Laufwerk Zertifikat (Cert:) oder verwenden Sie es. Wenn das Zertifikat nicht gültig ist oder über keine ausreichende Autorität verfügt, schlägt der Befehl fehl.

Type:X509Certificate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Gibt das digitale Zertifikat für öffentliche Schlüssel (X509) eines Benutzerkontos an, das über die Berechtigung zum Senden der Anforderung verfügt. Geben Sie den Zertifikatfingerabdruck des Zertifikats ein.

Zertifikate werden bei der clientzertifikatbasierten Authentifizierung verwendet. Zertifikate können nur lokalen Benutzerkonten und nicht Domänenkonten zugeordnet werden.

Um den Zertifikatfingerabdruck anzuzeigen, verwenden Sie den Get-Item Befehl oder Get-ChildItem , um das Zertifikat in Cert:\CurrentUser\Myzu suchen.

Hinweis

Dieses Feature wird nur auf Windows-Betriebssystemplattformen unterstützt.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContentType

Gibt den Inhaltstyp der Webanforderung an.

Wenn der Wert für ContentType das Codierungsformat (as charset) enthält, verwendet das Cmdlet dieses Format, um den Text der Webanforderung zu codieren. Wenn der ContentType kein Codierungsformat angibt, wird stattdessen das Standardcodierungsformat verwendet. Ein Beispiel für einen ContentType mit einem Codierungsformat ist text/plain; charset=iso-8859-5, das das lateinische/kyrillische Alphabet angibt.

Wenn dieser Parameter nicht angegeben wird und die Anforderungsmethode POST ist, Invoke-WebRequest legt den Inhaltstyp auf fest application/x-www-form-urlencoded. Andernfalls wird der Inhaltstyp nicht im Aufruf angegeben.

ContentType wird überschrieben, wenn ein MultipartFormDataContent-Objekt für Body bereitgestellt wird.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Senden der Anforderung verfügt. Der Standardwert ist der aktuelle Benutzer.

Geben Sie einen Benutzernamen ein, z. B. User01 oder Domain01\User01, oder geben Sie ein vom Get-Credential Cmdlet generiertes PSCredential-Objekt ein.

Anmeldeinformationen können allein oder in Verbindung mit bestimmten Authentifizierungsparameteroptionen verwendet werden. Bei alleiniger Verwendung werden nur Anmeldeinformationen an den Remoteserver bereitgestellt, wenn der Remoteserver eine Authentifizierungsanforderung sendet. Bei Verwendung mit Authentifizierungsoptionen werden die Anmeldeinformationen explizit gesendet.

Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString gespeichert.

Hinweis

Weitere Informationen zum Schutz von SecureString-Daten finden Sie unter Wie sicher ist SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CustomMethod

Gibt eine benutzerdefinierte Methode an, die für die Webanforderung verwendet wird. Dies kann verwendet werden, wenn die vom Endpunkt erforderliche Anforderungsmethode keine verfügbare Option für die Methode ist. Method und CustomMethod können nicht zusammen verwendet werden.

In diesem Beispiel wird eine TEST HTTP-Anforderung an die API gesendet:

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

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:String
Aliases:CM
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DisableKeepAlive

Gibt an, dass das Cmdlet den Wert KeepAlive im HTTP-Header auf False festlegt. KeepAlive ist standardmäßig True. KeepAlive richtet eine persistente Verbindung mit dem Server ein, um nachfolgende Anforderungen zu erleichtern.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Form

Konvertiert ein Wörterbuch in eine multipart/form-data Übermittlung. Formular darf nicht mit Body verwendet werden. Wenn ContentType verwendet wird, wird dies ignoriert.

Die Schlüssel des Wörterbuchs werden als Formularfeldnamen verwendet. Standardmäßig werden Formularwerte in Zeichenfolgenwerte konvertiert.

Wenn der Wert ein System.IO.FileInfo-Objekt ist, wird der Inhalt der Binärdatei übermittelt. Der Name der Datei wird als dateiname-Eigenschaft übermittelt. Der MIME-Typ ist auf application/octet-streamfestgelegt. Get-Item kann verwendet werden, um die Bereitstellung des System.IO.FileInfo-Objekts zu vereinfachen.

$Form = @{ resume = Get-Item 'c:\Users\jdoe\Documents\John Doe.pdf' }

Wenn es sich bei dem Wert um einen Sammlungstyp handelt, z. B. Arrays oder Listen, wird das Feld for mehrmals übermittelt. Die Werte der Liste werden standardmäßig als Zeichenfolgen behandelt. Wenn der Wert ein System.IO.FileInfo-Objekt ist, wird der Inhalt der Binärdatei übermittelt. Geschachtelte Sammlungen werden nicht unterstützt.

$Form = @{ tags = 'Vacation', 'Italy', '2017' pictures = Get-ChildItem 'c:\Users\jdoe\Pictures\2017-Italy' }

Im obigen Beispiel wird das tags Feld dreimal im Formular angegeben, einmal für jedes von Vacation, Italyund 2017. Das pictures Feld wird auch einmal für jede Datei im 2017-Italy Ordner übermittelt. Der binäre Inhalt der Dateien in diesem Ordner wird als Werte übermittelt.

Dieses Feature wurde in PowerShell 6.1.0 hinzugefügt.

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Headers

Gibt die Header der Webanforderung an. Geben Sie eine Hashtabelle oder ein Wörterbuch ein.

Inhaltsbezogene Header, z Content-Type . B. werden überschrieben, wenn ein MultipartFormDataContent-Objekt für Body bereitgestellt wird.

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HttpVersion

Gibt die für die Anforderung verwendete HTTP-Version an. Der Standardwert lautet 1.1.

Gültige Werte sind:

  • 1.0
  • 1.1
  • 2.0
  • 3.0
Type:Version
Position:Named
Default value:1.1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InFile

Ruft den Inhalt der Webanforderung aus einer Datei ab. Geben Sie einen Pfad und einen Dateinamen ein. Wenn Sie den Pfad weglassen, wird der aktuelle Speicherort als Standard verwendet.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumRedirection

Gibt an, wie oft PowerShell eine Verbindung an einen alternativen URI (Uniform Resource Identifier) umleitet, bevor die Verbindung fehlschlägt. Der Standardwert ist 5. Der Wert 0 (null) unterbindet sämtliche Umleitungen.

Type:Int32
Position:Named
Default value:5
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumRetryCount

Gibt an, wie oft PowerShell eine Verbindung wiederholt, wenn ein Fehlercode zwischen 400 und 599, einschließlich oder 304, empfangen wird. Informationen zum Angeben der Anzahl von Wiederholungsversuchen finden Sie auch unter RetryIntervalSec-Parameter .

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Method

Gibt die für die Webanforderung verwendete Methode an. Zulässige Werte für diesen Parameter:

  • Default
  • Delete
  • Get
  • Head
  • Merge
  • Options
  • Patch
  • Post
  • Put
  • Trace

Der Parameter CustomMethod kann für Anforderungsmethoden verwendet werden, die oben nicht aufgeführt sind.

Type:WebRequestMethod
Accepted values:Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoProxy

Gibt an, dass das Cmdlet keinen Proxy verwenden sollte, um das Ziel zu erreichen. Wenn Sie den in der Umgebung konfigurierten Proxy umgehen müssen, verwenden Sie diesen Schalter. Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OutFile

Gibt die Ausgabedatei an, für die dieses Cmdlet den Antworttext speichert. Geben Sie einen Pfad und dateinamen ein. Wenn Sie den Pfad weglassen, wird der aktuelle Speicherort als Standard verwendet. Der Name wird als Literalpfad behandelt. Namen, die Klammern ([]) enthalten, müssen in einfache Anführungszeichen (') eingeschlossen werden.

Standardmäßig Invoke-WebRequest werden die Ergebnisse an die Pipeline zurückgegeben. Verwenden Sie den Passthru-Parameter, um Ergebnisse an eine Datei und an die Pipeline zu senden.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Gibt an, dass das Cmdlet zusätzlich zum Schreiben in eine Datei die Ergebnisse zurückgibt. Dieser Parameter ist nur gültig, wenn der OutFile-Parameter ebenfalls im Befehl verwendet wird.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PreserveAuthorizationOnRedirect

Gibt an, dass das Cmdlet den Authorization Header beibehalten soll, sofern vorhanden, über Umleitungen hinweg.

Standardmäßig entfernt das Cmdlet den Header vor der Authorization Umleitung. Wenn Sie diesen Parameter angeben, wird diese Logik für Fälle deaktiviert, in denen der Header an den Umleitungsspeicherort gesendet werden muss.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Proxy

Gibt einen Proxyserver für die Anforderung an, anstatt eine direkte Verbindung mit der Internetressource herzustellen. Geben Sie den URI des Netzwerk-Proxyservers ein.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProxyCredential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Verwenden des Proxyservers verfügt, der durch den Proxy-Parameter angegeben wird. Der Standardwert ist der aktuelle Benutzer.

Geben Sie einen Benutzernamen ein, z User01 . B. oder Domain01\User01, oder geben Sie ein PSCredential-Objekt ein, z. B. ein vom Get-Credential Cmdlet generiertes Objekt.

Dieser Parameter ist nur gültig, wenn der Proxyparameter auch im Befehl verwendet wird. Sie können die Parameter ProxyCredential und ProxyUseDefaultCredentials nicht im gleichen Befehl verwenden.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ProxyUseDefaultCredentials

Gibt an, dass das Cmdlet die Anmeldeinformationen des aktuellen Benutzers verwendet, um auf den Proxyserver zuzugreifen, der durch den Proxyparameter angegeben wird.

Dieser Parameter ist nur gültig, wenn der Proxyparameter auch im Befehl verwendet wird. Sie können die Parameter ProxyCredential und ProxyUseDefaultCredentials nicht im gleichen Befehl verwenden.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Resume

Führt einen Versuch nach bestem Bemühen aus, den Download einer Teildatei fortzusetzen. Resume erfordert OutFile.

Resume funktioniert nur auf die Größe der lokalen Datei und der Remotedatei und führt keine andere Überprüfung durch, dass die lokale Datei und die Remotedatei identisch sind.

Wenn die lokale Dateigröße kleiner als die Remotedateigröße ist, versucht das Cmdlet, den Download der Datei fortzusetzen und die verbleibenden Bytes an das Ende der Datei anzufügen.

Wenn die lokale Dateigröße mit der Remotedateigröße übereinstimmt, wird keine Aktion ausgeführt, und das Cmdlet geht davon aus, dass der Download bereits abgeschlossen ist.

Wenn die lokale Dateigröße größer als die Remotedateigröße ist, wird die lokale Datei überschrieben, und die gesamte Remotedatei wird erneut heruntergeladen. Dieses Verhalten ist identisch mit der Verwendung von OutFile ohne Resume.

Wenn der Remoteserver die Fortsetzung des Downloads nicht unterstützt, wird die lokale Datei überschrieben, und die gesamte Remotedatei wird erneut heruntergeladen. Dieses Verhalten ist identisch mit der Verwendung von OutFile ohne Resume.

Wenn die lokale Datei nicht vorhanden ist, wird die lokale Datei erstellt, und die gesamte Remotedatei wird heruntergeladen. Dieses Verhalten ist identisch mit der Verwendung von OutFile ohne Resume.

Dieses Feature wurde in PowerShell 6.1.0 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RetryIntervalSec

Gibt das Intervall zwischen Wiederholungen für die Verbindung an, wenn ein Fehlercode zwischen 400 und 599, einschließlich oder 304, empfangen wird. Weitere Informationen zum Angeben der Anzahl von Wiederholungsversuchen finden Sie auch unter MaximumRetryCount-Parameter . Der Wert muss zwischen 1 und sein [int]::MaxValue.

Type:Int32
Position:Named
Default value:5
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionVariable

Gibt eine Variable an, für die dieses Cmdlet eine Webanforderungssitzung erstellt und im Wert speichert. Geben Sie einen Variablennamen ohne das Dollarzeichensymbol ($) ein.

Wenn Sie eine Sitzungsvariable angeben, Invoke-WebRequest erstellt ein Webanforderungssitzungsobjekt und weist es einer Variablen mit dem angegebenen Namen in Ihrer PowerShell-Sitzung zu. Sie können die Variable in der Sitzung verwenden, sobald der Befehl abgeschlossen wurde.

Vor PowerShell 7.4 ist die Webanforderungssitzung keine dauerhafte Verbindung. Es handelt sich um ein Objekt, das Informationen über die Verbindung und die Anforderung enthält, einschließlich Cookies, Anmeldeinformationen, des maximalen Umleitungswerts und der Zeichenfolge des Benutzer-Agents. Sie können das Objekt verwenden, um den Zustand und die Daten übergreifend für Webanforderungen zu nutzen.

Ab PowerShell 7.4 ist die Webanforderungssitzung persistent, solange die Eigenschaften der Sitzung in einer nachfolgenden Anforderung nicht überschrieben werden. Wenn dies der Zeitpunkt ist, erstellt das Cmdlet die Sitzung mit den neuen Werten neu. Die persistenten Sitzungen reduzieren den Mehraufwand für wiederholte Anforderungen, sodass sie viel schneller sind.

Um die Webanforderungssitzung in nachfolgenden Webanforderungen zu verwenden, geben Sie die Sitzungsvariable im Wert des WebSession-Parameters an. PowerShell verwendet die Daten im Webanforderungssitzungsobjekt beim Herstellen der neuen Verbindung. Um einen Wert in der Webanforderungssitzung zu überschreiben, verwenden Sie einen Cmdletparameter wie UserAgent oder Credential. Parameterwerte haben Vorrang vor Werten in der Webanforderungssitzung.

Sie können die Parameter SessionVariable und WebSession nicht im gleichen Befehl verwenden.

Type:String
Aliases:SV
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipCertificateCheck

Überspringt Zertifikatüberprüfungen. Dies umfasst alle Überprüfungen wie Ablauf, Sperrung, vertrauenswürdige Stammautorität usw.

Warnung

Die Verwendung dieses Parameters ist nicht sicher und wird nicht empfohlen. Dieser Switch ist nur für bekannte Hosts vorgesehen, die ein selbstsigniertes Zertifikat zu Testzwecken verwenden. Die Verwendung erfolgt auf eigene Gefahr.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipHeaderValidation

Gibt an, dass das Cmdlet der Anforderung Ohne Validierung Header hinzufügen soll.

Dieser Schalter sollte für Websites verwendet werden, die Headerwerte erfordern, die nicht den Standards entsprechen. Wenn Sie diesen Schalter angeben, wird die Überprüfung deaktiviert, damit der Wert ungeprüft übergeben werden kann. Wenn angegeben, werden alle Header ohne Validierung hinzugefügt.

Dieser Schalter deaktiviert die Überprüfung für Werte, die an die Parameter ContentType, Headers und UserAgent übergeben werden.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipHttpErrorCheck

Dieser Parameter bewirkt, dass das Cmdlet HTTP-Fehlerstatus ignoriert und die Antworten weiter verarbeitet. Die Fehlerantworten werden so in die Pipeline geschrieben, als wären sie erfolgreich.

Dieser Parameter wurde in PowerShell 7 eingeführt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SslProtocol

Legt die SSL/TLS-Protokolle fest, die für die Webanforderung zulässig sind. Standardmäßig sind alle vom System unterstützten SSL-/TLS-Protokolle zulässig. SslProtocol ermöglicht die Beschränkung auf bestimmte Protokolle zu Konformitätszwecken.

Diese Werte werden als flagbasierte Enumeration definiert. Mit diesem Parameter können Sie mehrere Werte kombinieren, um mehrere Flags festzulegen. Die Werte können als Array von Werten oder als durch Trennzeichen getrennte Zeichenfolge dieser Werte an den SslProtocol-Parameter übergeben werden. Das Cmdlet kombiniert die Werte mithilfe eines binary-OR-Vorgangs. Das Übergeben von Werten als Array ist die einfachste Option und ermöglicht es Ihnen auch, die Tabulatorvervollständigung für die Werte zu verwenden. Möglicherweise können Sie nicht mehrere Optionen auf allen Plattformen definieren.

Hinweis

Auf Nicht-Windows-Plattformen ist es möglicherweise nicht möglich, oder Tls12 als Option bereitzustellenTls. Die Unterstützung für Tls13 ist nicht auf allen Betriebssystemen verfügbar und muss auf Betriebssystembasis überprüft werden.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt, und die Unterstützung für Tls13 wurde in PowerShell 7.1 hinzugefügt.

Type:WebSslProtocol
Accepted values:Default, Tls, Tls11, Tls12
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutSec

Gibt an, wie lange die Anforderung ausstehen kann, bevor ein Zeitlimit aufgetreten ist. Geben Sie einen Wert in Sekunden ein. Der Standardwert 0 (null) steht für einen unbegrenzten Zeitüberschreitungswert.

Eine DNS-Abfrage (Domain Name System) kann bis zu 15 Sekunden dauern, bis sie zurückgegeben oder ein Timeout ausgeführt wird. Wenn Ihre Anforderung einen Hostnamen enthält, der eine Auflösung erfordert, und Sie TimeoutSec auf einen Wert größer als 0 (null) festlegen, aber weniger als 15 Sekunden, kann es 15 Sekunden oder mehr dauern, bis eine WebException ausgelöst wird und ein Timeout für Ihre Anforderung auftritt.

Type:Int32
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Token

Das OAuth- oder Bearertoken, das in die Anforderung eingeschlossen werden soll. Token ist für bestimmte Authentifizierungsoptionen erforderlich. Es kann nicht unabhängig verwendet werden.

Token nimmt ein an SecureString , das das Token enthält. Verwenden Sie Folgendes, um das Token manuell anzugeben:

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

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TransferEncoding

Gibt einen Wert für den HTTP-Antwortheader transfer-encoding an. Zulässige Werte für diesen Parameter:

  • Chunked
  • Compress
  • Deflate
  • GZip
  • Identity
Type:String
Accepted values:chunked, compress, deflate, gzip, identity
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Uri

Gibt den URI (Uniform Resource Identifier) der Internetressource an, an die die Webanforderung gesendet wird. Geben Sie einen URI ein. Dieser Parameter unterstützt nur HTTP oder HTTPS.

Dieser Parameter ist erforderlich. Der Parametername URI ist optional.

Type:Uri
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseBasicParsing

Dieser Parameter ist veraltet. Ab PowerShell 6.0.0 verwenden alle Webanforderungen nur die grundlegende Analyse. Dieser Parameter ist nur aus Gründen der Abwärtskompatibilität enthalten, und jede Verwendung hat keine Auswirkungen auf den Vorgang des Cmdlets.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseDefaultCredentials

Gibt an, dass das Cmdlet die Anmeldeinformationen des aktuellen Benutzers verwendet, um die Webanforderung zu senden. Dies kann nicht mit Authentifizierung oder Anmeldeinformationen verwendet werden und wird möglicherweise nicht auf allen Plattformen unterstützt.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserAgent

Gibt eine Benutzer-Agent-Zeichenfolge für die Webanforderung an.

Der Standardbenutzer-Agent ähnelt mit Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10.0.15063; en-US) PowerShell/6.0.0 geringfügigen Variationen für jedes Betriebssystem und jede Plattform.

Verwenden Sie zum Testen einer Website mit der standardmäßigen Benutzer-Agent-Zeichenfolge, die von den meisten Internetbrowsern verwendet wird, die Eigenschaften der PSUserAgent-Klasse , z. B. Chrome, FireFox, InternetExplorer, Opera und Safari.

Der folgende Befehl verwendet beispielsweise die Benutzer-Agent-Zeichenfolge für internet Explorer:Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WebSession

Gibt eine Webanforderungssitzung an. Geben Sie den Variablennamen ein, einschließlich des Dollarzeichens ($).

Um einen Wert in der Webanforderungssitzung zu überschreiben, verwenden Sie einen Cmdletparameter wie UserAgent oder Credential. Parameterwerte haben Vorrang vor Werten in der Webanforderungssitzung. Inhaltsbezogene Header, z Content-Type. B. , werden auch überschrieben, wenn ein MultipartFormDataContent-Objekt für Body bereitgestellt wird.

Im Gegensatz zu einer Remotesitzung ist die Webanforderungssitzung keine dauerhafte Verbindung. Es handelt sich um ein Objekt, das Informationen über die Verbindung und die Anforderung enthält, einschließlich Cookies, Anmeldeinformationen, des maximalen Umleitungswerts und der Zeichenfolge des Benutzer-Agents. Sie können das Objekt verwenden, um den Zustand und die Daten übergreifend für Webanforderungen zu nutzen.

Um eine Webanforderungssitzung zu erstellen, geben Sie einen Variablennamen ohne Dollarzeichen in den Wert des SessionVariable-Parameters eines Befehls ein Invoke-WebRequest . Invoke-WebRequest erstellt die Sitzung und speichert sie in der Variablen. In allen nachfolgenden Befehlen verwenden Sie die Variable als Wert für den WebSession-Parameter.

Sie können die Parameter SessionVariable und WebSession nicht im gleichen Befehl verwenden.

Type:WebRequestSession
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

Object

Sie können den Text einer Webanforderung an dieses Cmdlet weiterleiten.

Ausgaben

BasicHtmlWebResponseObject

Dieses Cmdlet gibt das Antwortobjekt zurück, das das Ergebnis der Webanforderung darstellt.

Hinweise

PowerShell enthält die folgenden Aliase für Invoke-WebRequest:

  • Alle Plattformen:
    • iwr

Ab PowerShell 6.0.0 Invoke-WebRequest unterstützt nur die grundlegende Analyse.

Weitere Informationen finden Sie unter BasicHtmlWebResponseObject.

Aufgrund von Änderungen in .NET Core 3.1 verwenden PowerShell 7.0 und höher die HttpClient.DefaultProxy-Eigenschaft , um die Proxykonfiguration zu bestimmen.

Der Wert dieser Eigenschaft wird von Ihrer Plattform bestimmt:

  • Für Windows: Liest die Proxykonfiguration aus Umgebungsvariablen. Wenn diese Variablen nicht definiert sind, wird die Eigenschaft von den Proxyeinstellungen des Benutzers abgeleitet.
  • Für macOS: Liest die Proxykonfiguration aus Umgebungsvariablen. Wenn diese Variablen nicht definiert sind, wird die Eigenschaft von den Proxyeinstellungen des Systems abgeleitet.
  • Für Linux: Liest die Proxykonfiguration aus Umgebungsvariablen. Wenn diese Variablen nicht definiert sind, initialisiert die -Eigenschaft einen nicht konfigurierten instance, der alle Adressen umgeht.

Für die Initialisierung von DefaultProxy auf Windows- und Unix-basierten Plattformen werden folgende Umgebungsvariablen verwendet:

  • HTTP_PROXY: Der Hostname oder die IP-Adresse des Proxyservers, der für HTTP-Anforderungen verwendet wird.
  • HTTPS_PROXY: Der Hostname oder die IP-Adresse des Proxyservers, der für HTTPS-Anforderungen verwendet wird.
  • ALL_PROXY: Der Hostname oder die IP-Adresse des Proxyservers, der für HTTP- und HTTPS-Anforderungen verwendet wird, falls HTTP_PROXY oder HTTPS_PROXY nicht definiert sind.
  • NO_PROXY: Eine durch Trennzeichen getrennte Liste mit Hostnamen, die aus der Proxyfunktion ausgeschlossen werden sollen.