Freigeben über


Invoke-WebRequest

Ruft Inhalte von einer Webseite im Internet ab.

Syntax

StandardMethod (Standard)

Invoke-WebRequest
    [-Uri] <Uri>
    [-UseBasicParsing]
    [-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>]

StandardMethodNoProxy

Invoke-WebRequest
    [-Uri] <Uri>
    -NoProxy
    [-UseBasicParsing]
    [-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>]
    [-Body <Object>]
    [-Form <IDictionary>]
    [-ContentType <String>]
    [-TransferEncoding <String>]
    [-InFile <String>]
    [-OutFile <String>]
    [-PassThru]
    [-Resume]
    [-SkipHttpErrorCheck]
    [-PreserveAuthorizationOnRedirect]
    [-SkipHeaderValidation]
    [<CommonParameters>]

CustomMethod

Invoke-WebRequest
    [-Uri] <Uri>
    -CustomMethod <String>
    [-UseBasicParsing]
    [-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>]
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-ProxyUseDefaultCredentials]
    [-Body <Object>]
    [-Form <IDictionary>]
    [-ContentType <String>]
    [-TransferEncoding <String>]
    [-InFile <String>]
    [-OutFile <String>]
    [-PassThru]
    [-Resume]
    [-SkipHttpErrorCheck]
    [-PreserveAuthorizationOnRedirect]
    [-SkipHeaderValidation]
    [<CommonParameters>]

CustomMethodNoProxy

Invoke-WebRequest
    [-Uri] <Uri>
    -CustomMethod <String>
    -NoProxy
    [-UseBasicParsing]
    [-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>]
    [-Body <Object>]
    [-Form <IDictionary>]
    [-ContentType <String>]
    [-TransferEncoding <String>]
    [-InFile <String>]
    [-OutFile <String>]
    [-PassThru]
    [-Resume]
    [-SkipHttpErrorCheck]
    [-PreserveAuthorizationOnRedirect]
    [-SkipHeaderValidation]
    [<CommonParameters>]

Beschreibung

Das cmdlet Invoke-WebRequest 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 unterstützt Invoke-WebRequest die proxykonfiguration, die von Umgebungsvariablen definiert wird. Weitere Informationen finden Sie im Abschnitt Notizen dieses Artikels.

Von Bedeutung

Die Beispiele in diesem Artikel verweisen auf Hosts in der domäne contoso.com. Dies ist eine fiktive Domäne, die von Microsoft für Beispiele verwendet wird. Die Beispiele sollen zeigen, wie die Cmdlets verwendet werden. Da die contoso.com Websites jedoch nicht existieren, 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 Cmdlet Invoke-WebRequest 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 variablen $Response.

Der zweite Befehl ruft InputField- ab, wobei die eigenschaft Name wie "* Value"ist. Die gefilterten Ergebnisse werden an Select-Object weitergeleitet, um die Eigenschaften Name und Value auszuwählen.

Beispiel 2: Verwenden eines zustandsbehafteten Webdiensts

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

$Body = @{
    User = 'jdoe'
    password = 'P@S$w0rd!'
}
$LoginResponse = Invoke-WebRequest 'https://www.contoso.com/login/' -SessionVariable 'Session' -Body $Body -Method 'POST'

$Session

$ProfileResponse = Invoke-WebRequest 'https://www.contoso.com/profile/' -WebSession $Session

$ProfileResponse

Der erste Aufruf an Invoke-WebRequest sendet eine Anmeldeanforderung. Der Befehl gibt den Wert "Session" für den Wert des Parameters -SessionVariable an und speichert das Ergebnis in der $LoginResponse Variablen. Wenn der Befehl abgeschlossen ist, enthält die $LoginResponse Variable ein BasicHtmlWebResponseObject und die $Session Variable ein WebRequestSession Objekt. Dadurch wird der Benutzer bei der Website protokolliert.

Der Aufruf von $Session by selbst zeigt das WebRequestSession Objekt in der Variablen an.

Der zweite Aufruf zum Invoke-WebRequest Abrufen des Benutzerprofils, für den der Benutzer bei der Website angemeldet sein muss. Die in der $Session Variablen gespeicherten Sitzungsdaten werden verwendet, um Sitzungscookies für die Website bereitzustellen, die während der Anmeldung erstellt wurden. Das Ergebnis wird in der $ProfileResponse Variablen gespeichert.

Der Aufruf von $ProfileResponse selbst zeigt das BasicHtmlWebResponseObject in der Variablen an.

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

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

Beispiel 4: Schreibt den Antwortinhalt in eine Datei unter Verwendung der Codierung, die auf der angeforderten Seite definiert ist.

In diesem Beispiel wird das Cmdlet Invoke-WebRequest 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 eine StreamWriter Datei erstellt, mit der der Antwortinhalt in eine Datei geschrieben werden soll. Die Codierung Eigenschaft des Antwortobjekts wird verwendet, um die Codierung für die Datei festzulegen.

Mit den letzten Befehlen wird die Content-Eigenschaft in die Datei geschrieben und dann die StreamWriter.

Beachten Sie, dass die eigenschaft Encoding null ist, wenn die Webanforderung keinen Textinhalt zurückgibt.

Beispiel 5: Senden einer mehrteiligen/Formulardatendatei

In diesem Beispiel wird das Cmdlet Invoke-WebRequest verwendet, um eine Datei als multipart/form-data Übermittlung hochzuladen. 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/Form-Data Übermittlung

Einige APIs erfordern multipart/form-data Übermittlungen zum Hochladen von Dateien und gemischten Inhalten. 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

Das Profilformular erfordert folgende Felder: firstName, lastName, email, avatar, birthdayund hobbies. Die API erwartet, dass ein Bild für das Benutzerprofilbild im Feld avatar angegeben wird. Die API akzeptiert auch mehrere hobbies Einträge, die in demselben Formular ü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, werden die Dateiinhalte übermittelt. Wenn eine Auflistung wie Arrays oder Listen vorhanden sind, wird das Formularfeld mehrmals übermittelt.

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

Indem eine Liste dem Schlüssel hobbies zugeordnet wird, ist das Feld hobbies in den Übermittlungen jeweils einmal für jedes Listenelement vorhanden.

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

Wenn Invoke-WebRequest auf eine nicht erfolgreiche HTTP-Nachricht (404, 500 usw.) stoßen, gibt sie keine Ausgabe zurück und löst einen Beendigungsfehler aus. Zum Abfangen des Fehlers und Anzeigen des StatusCode- 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 Beendigungsfehler wird vom catch-Block abgefangen, der die StatusCode- aus dem Exception-Objekt abruft.

Parameter

-AllowUnencryptedAuthentication

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

Warnung

Die Verwendung dieses Parameters ist nicht sicher und wird nicht empfohlen. Sie wird nur aus Gründen der Kompatibilität mit Legacy-Systemen bereitgestellt, die keine verschlüsselten Verbindungen bereitstellen können. Verwenden Sie auf eigenes Risiko.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Authentication

Gibt den expliziten Authentifizierungstyp an, der für die Anforderung verwendet werden soll. Der Standardwert ist "None". Der parameter Authentication 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 verwendet, um einen RFC 7617 Basic Authentication-Header Authorization: Basic im Format zu senden.base64(user:password)
  • Bearer: Erfordert den parameter Token. Sendet einen RFC 6750-Authorization: Bearer-Header mit dem bereitgestellten Token.
  • OAuth: Erfordert den parameter Token. Sendet einen RFC 6750-Authorization: Bearer-Header mit dem bereitgestellten Token.

Die Angabe von Authentifizierung überschreibt alle Authorization-Header, die an Headers übergeben oder in WebSession enthalten sind.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:WebAuthenticationType
Standardwert:None
Zulässige Werte:None, Basic, Bearer, OAuth
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Body

Gibt den Inhalt der Anforderung an. Der Textkörper ist der Inhalt der Anforderung, die den Kopfzeilen folgt. Sie können auch einen Body-Wert an Invoke-WebRequest weiterleiten.

Der parameter Body kann verwendet werden, um eine Liste der Abfrageparameter anzugeben oder den Inhalt der Antwort anzugeben.

Wenn es sich bei der Eingabe um eine GET-Anforderung handelt und es sich bei dem Text um eine IDictionary (in der Regel eine Hashtabelle) handelt, wird der Text dem URI als Abfrageparameter hinzugefügt. Bei anderen Anforderungstypen (z. B. POST) wird der Textkörper als Wert des Anforderungstexts im Standardformat name=value festgelegt.

Der Parameter Body kann auch ein System.Net.Http.MultipartFormDataContent Objekt akzeptieren. Dies erleichtert multipart/form-data Anforderungen. Wenn ein MultipartFormDataContent--Objekt für Body-bereitgestellt wird, werden alle inhaltsbezogenen Kopfzeilen, die an die ContentType-, Headersoder WebSession Parameter überschrieben werden durch die Inhaltsheader des MultipartFormDataContent -Objekts überschrieben. Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:Object
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Certificate

Gibt das Clientzertifikat an, das für eine sichere Webanforderung verwendet wird. Geben Sie eine Variable ein, die ein Zertifikat enthält oder einen Befehl bzw. Ausdruck zum Abrufen des Zertifikats.

Um ein Zertifikat zu finden, verwenden Sie Get-PfxCertificate oder verwenden Sie das cmdlet Get-ChildItem im Zertifikatlaufwerk (Cert:). Wenn das Zertifikat ungültig ist oder nicht über ausreichende Autorität verfügt, schlägt der Befehl fehl.

Parametereigenschaften

Typ:X509Certificate
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-CertificateThumbprint

Gibt das zertifikat für den digitalen öffentlichen 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 in der zertifikatbasierten Clientauthentifizierung verwendet. Sie können nur lokalen Benutzerkonten zugeordnet werden; sie funktionieren nicht mit Domänenkonten.

Verwenden Sie zum Abrufen eines Zertifikatfingerabdrucks den Befehl Get-Item oder Get-ChildItem im PowerShell-Cert: Laufwerk.

Hinweis

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

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ContentType

Gibt den Inhaltstyp der Webanforderung an.

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

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

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Credential

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

Geben Sie einen Benutzernamen ein, z. B. User01 oder Domain01\User01, oder geben Sie ein PSCredential-Objekt ein, das vom cmdlet Get-Credential generiert wird.

anmeldeinformationen können allein oder in Verbindung mit bestimmten Authentication Parameteroptionen verwendet werden. Wenn sie allein verwendet wird, stellt sie nur Anmeldeinformationen an den Remoteserver bereit, wenn der Remoteserver eine Anforderung für die Authentifizierungsabfrage sendet. Bei Verwendung mit Authentifizierung Optionen werden die Anmeldeinformationen explizit gesendet.

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

Hinweis

Weitere Informationen zu SecureString Datenschutz finden Sie unter Wie sicher ist SecureString?.

Parametereigenschaften

Typ:PSCredential
Standardwert:Current user
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 Methodeist. Methode 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.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:ZENTIMETER

Parametersätze

CustomMethod
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CustomMethodNoProxy
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-DisableKeepAlive

Gibt an, dass das Cmdlet den wert KeepAlive im HTTP-Header auf Falsefestlegt. Standardmäßig ist KeepAlive-True. KeepAlive stellt eine dauerhafte Verbindung mit dem Server her, um nachfolgende Anfragen zu erleichtern.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Form

Konvertiert ein Wörterbuch in eine multipart/form-data-Übermittlung. Form darf nicht mit Body verwendet werden. Wenn ContentType- verwendet wird, wird er 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, werden die Binärdateiinhalte übermittelt. Der Name der Datei wird als Dateiname Eigenschaft übermittelt. Der MIME-Typ wird als application/octet-streamfestgelegt. Get-Item können 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 mehrmals übermittelt. Die Werte der Liste werden standardmäßig als Zeichenfolgen behandelt. Wenn der Wert ein System.IO.FileInfo-Objekt ist, werden die Binärdateiinhalte übermittelt. Eingebettete Collections werden nicht unterstützt.

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

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

Dieses Feature wurde in PowerShell 6.1.0 hinzugefügt.

Parametereigenschaften

Typ:IDictionary
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Headers

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

Verwenden Sie zum Festlegen von UserAgent-Headern den parameter UserAgent. Sie können diesen Parameter nicht verwenden, um User-Agent- oder Cookie-Header anzugeben.

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

Parametereigenschaften

Typ:IDictionary
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InFile

Ruft den Inhalt der Webanforderung aus einer Datei ab. Geben Sie einen Pfad und Dateinamen ein. Wenn Sie den Pfad weglassen, ist die Standardeinstellung der aktuelle Speicherort.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-MaximumRedirection

Gibt an, wie oft PowerShell eine Verbindung zu einem alternativen URI (Uniform Resource Identifier) umleitet, bevor die Verbindung fehlschlägt. Der Standardwert ist 5. Ein Wert von 0 (Null) verhindert die gesamte Umleitung.

Parametereigenschaften

Typ:Int32
Standardwert:5
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-MaximumRetryCount

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

Parametereigenschaften

Typ:Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Method

Gibt die Methode an, die für die Webanforderung verwendet wird. Die zulässigen Werte für diesen Parameter sind:

  • 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.

Parametereigenschaften

Typ:WebRequestMethod
Standardwert:None
Zulässige Werte:Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StandardMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
StandardMethodNoProxy
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 Switch. Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StandardMethodNoProxy
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CustomMethodNoProxy
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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, ist die Standardeinstellung der aktuelle Speicherort. Der Name wird als literaler Pfad behandelt. Namen, die eckige Klammern ([]) enthalten, müssen in einfache Anführungszeichen (') eingeschlossen werden.

Standardmäßig gibt Invoke-WebRequest die Ergebnisse an die Pipeline zurück. Um die Ergebnisse an eine Datei und an die Pipeline zu senden, verwenden Sie den Passthru-Parameter .

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-PassThru

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

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-PreserveAuthorizationOnRedirect

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

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

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Proxy

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

Parametereigenschaften

Typ:Uri
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StandardMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CustomMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ProxyCredential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Verwenden des Proxyservers verfügt, der durch den Proxyparameter angegeben wird. Die Standardeinstellung ist der aktuelle Benutzer.

Geben Sie einen Benutzernamen ein, z. B. Benutzer01 oder Domäne01\Benutzer01, User@Domain.Comoder geben Sie ein PSCredential Objekt ein, z. B. ein vom Get-Credential Cmdlet generiertes.

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

Parametereigenschaften

Typ:PSCredential
Standardwert:Current user
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StandardMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CustomMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ProxyUseDefaultCredentials

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

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

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StandardMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CustomMethod
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Resume

Führt einen best effort-Versuch aus, das Herunterladen einer Teildatei fortzusetzen. Resume erfordert OutFile-.

Resume funktioniert nur mit der 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 am Ende der Datei anzufügen.

Wenn die lokale Dateigröße mit der Größe der Remotedatei ü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 Remotedatei ist, wird die lokale Datei überschrieben, und die gesamte Remotedatei wird erneut heruntergeladen. Dieses Verhalten ist dasselbe wie die Verwendung von OutFile ohne Resume.

Wenn der Remote-Server das Fortsetzen des Downloads nicht unterstützt, wird die lokale Datei überschrieben und die gesamte Remote-Datei erneut heruntergeladen. Dieses Verhalten ist dasselbe wie die Verwendung von OutFile ohne Resume.

Wenn die lokale Datei nicht vorhanden ist, wird die lokale Datei erstellt und die gesamte Remote-Datei heruntergeladen. Dieses Verhalten ist dasselbe wie die Verwendung von OutFile ohne Resume.

Dieses Feature wurde in PowerShell 6.1.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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. Siehe auch MaximumRetryCount Parameter zum Angeben der Anzahl der Wiederholungen.

Parametereigenschaften

Typ:Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SessionVariable

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

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

Im Gegensatz zu einer Remotesitzung besteht bei der Webanforderungssitzung keine persistente Verbindung. Es handelt sich um ein Objekt, das Informationen über die Verbindung und die Anforderung enthält, einschließlich Cookies, Anmeldeinformationen, maximaler Umleitungswert und der Benutzer-Agent-Zeichenfolge. Sie können es verwenden, um Status und Daten zwischen Webanforderungen auszutauschen.

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 außer Kraft zu setzen, verwenden Sie einen Cmdlet-Parameter, z. B. UserAgent- oder anmeldeinformationen. Parameterwerte haben Vorrang vor Werten in der Webanforderungssitzung.

Sie können die parameter SessionVariable und WebSession- nicht im selben Befehl verwenden.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:SV

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SkipCertificateCheck

Überspringt Zertifikatüberprüfungen. Dazu gehören alle Überprüfungen wie Ablauf, Sperrung, vertrauenswürdige Stammzertifizierungsstelle usw.

Warnung

Die Verwendung dieses Parameters ist nicht sicher und wird nicht empfohlen. Dieser Schalter ist nur dafür vorgesehen, gegen bekannte Hosts mit einem selbstsignierten Zertifikat zu Testzwecken verwendet zu werden. Verwenden Sie auf eigenes Risiko.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SkipHeaderValidation

Gibt an, dass das Cmdlet der Anforderung ohne Überprüfung Header hinzufügen soll.

Diese Option 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 ohne Überprüfung übergeben werden kann. Wenn angegeben, werden alle Header ohne Überprüfung hinzugefügt.

Mit dieser Option wird die Überprüfung für Werte deaktiviert, die an die ContentType-, Header und UserAgent- parameter übergeben werden.

Dieses Feature wurde in PowerShell 6.0.0 hinzugefügt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SkipHttpErrorCheck

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

Dieser Parameter wurde in PowerShell 7 eingeführt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SslProtocol

Legt die SSL/TLS-Protokolle fest, die für die Webanforderung zulässig sind. Standardmäßig sind ssl/TLS-Protokolle, die vom System unterstützt werden, zulässig. SslProtocol- ermöglicht die Beschränkung auf bestimmte Protokolle für Compliancezwecke.

Diese Werte werden als auf Flaggen basierende Enumeration definiert. Sie können mehrere Werte kombinieren, um mehrere Flags mithilfe dieses Parameters festzulegen. Die Werte können an den SslProtocol Parameter als Array von Werten oder als kommagetrennte Zeichenfolge dieser Werte ü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 Ihnen auch die Verwendung der Tab-Vervollständigung für die Werte. Möglicherweise können Sie nicht mehrere Optionen auf allen Plattformen definieren.

Hinweis

Auf Nicht-Windows-Plattformen ist es möglicherweise nicht möglich, Tls oder Tls12 als Option zu liefern. Die Unterstützung für Tls13 ist nicht auf allen Betriebssystemen verfügbar und muss pro Betriebssystem ü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.

Parametereigenschaften

Typ:WebSslProtocol
Standardwert:None
Zulässige Werte:Default, Tls, Tls11, Tls12
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-TimeoutSec

Gibt an, wie lange die Anforderung ausstehen kann, bevor es zu einer Zeitüberschreitung kommt. Bitte geben Sie einen Wert in Sekunden ein. Der Standardwert 0 gibt ein unbestimmtes Timeout an.

Es kann bis zu 15 Sekunden dauern, bis eine DNS-Abfrage (Domain Name System) zurückgegeben wird, oder es kommt zu einer Zeitüberschreitung. Wenn Ihre Anforderung einen Hostnamen enthält, der aufgelöst werden muss, und Sie TimeoutSec auf einen Wert größer als Null, aber weniger als 15 Sekunden festlegen, kann es 15 Sekunden oder länger dauern, bis eine WebException ausgelöst wird und bei der Anforderung ein Timeout auftritt.

Parametereigenschaften

Typ:Int32
Standardwert:0
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Token

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

Token- akzeptiert eine SecureString, die das Token enthält. Gehen Sie wie folgt vor, um das Token manuell zur Verfügung zu stellen:

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

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Parametereigenschaften

Typ:SecureString
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-TransferEncoding

Gibt einen Wert für den Transfer-Encoding-Header der HTTP-Antwort an. Die zulässigen Werte für diesen Parameter sind:

  • In Blöcken aufgeteilt
  • Komprimieren
  • Luft ablassen
  • GZip
  • Identität

Parametereigenschaften

Typ:String
Standardwert:None
Zulässige Werte:chunked, compress, deflate, gzip, identity
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:Uri
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-UserAgent

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

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

Um eine Website mit der standardmäßigen User-Agent-Zeichenfolge zu testen, die von den meisten Internetbrowsern verwendet wird, verwenden Sie 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)

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-WebSession

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

Um einen Wert in der Webanforderungssitzung außer Kraft zu setzen, verwenden Sie einen Cmdlet-Parameter, z. B. UserAgent- oder anmeldeinformationen. Parameterwerte haben Vorrang vor Werten in der Webanforderungssitzung. Inhaltsbezogene Kopfzeilen wie Content-Typewerden 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, maximaler Umleitungswert und der Benutzer-Agent-Zeichenfolge. Sie können es verwenden, um Status und Daten zwischen Webanforderungen auszutauschen.

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

Sie können die parameter SessionVariable und WebSession- nicht im selben Befehl verwenden.

Parametereigenschaften

Typ:WebRequestSession
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

Object

Sie können den Text einer Webanforderung über die Pipeline an Invoke-WebRequest.

Ausgaben

BasicHtmlWebResponseObject

Hinweise

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 wird in PowerShell 7.0 und höher die HttpClient.DefaultProxy-Eigenschaft verwendet, 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 Proxy-Einstellungen des Benutzers abgeleitet.
  • Für macOS-: Liest die Proxykonfiguration aus Umgebungsvariablen. Wenn diese Variablen nicht definiert sind, wird die Eigenschaft von den Proxy-Einstellungen des Systems abgeleitet.
  • für Linux-: Liest die Proxykonfiguration aus Umgebungsvariablen. Wenn diese Variablen nicht definiert sind, initialisiert die Eigenschaft eine nicht konfigurierte Instanz, die alle Adressen umgeht.

Die Umgebungsvariablen, die für DefaultProxy Initialisierung auf Windows- und Unix-basierten Plattformen verwendet werden, sind:

  • 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 Proxy-Servers, die für HTTP- und HTTPS-Anfragen verwendet werden, falls HTTP_PROXY oder HTTPS_PROXY nicht definiert sind.
  • NO_PROXY: eine durch Trennzeichen getrennte Liste von Hostnamen, die von der Proxyerstellung ausgeschlossen werden sollten.