Invoke-WebRequest
Ottiene il contenuto da una pagina Web su Internet.
Sintassi
Default (Impostazione predefinita)
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-Method <WebRequestMethod>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[<CommonParameters>]
Descrizione
Il Invoke-WebRequest cmdlet invia richieste HTTP, HTTPS, FTP e FILE a una pagina Web o a un servizio Web. Analizza la risposta e restituisce raccolte di moduli, collegamenti, immagini e altri elementi HTML significativi.
Questo cmdlet è stato introdotto in Windows PowerShell 3.0.
Avvertimento
Per impostazione predefinita, Invoke-WebRequest analizza il contenuto della pagina Web. Il codice script nella pagina Web potrebbe essere eseguito quando la pagina viene analizzata. Usare l'opzione per evitare l'esecuzione -UseBasicParsing di codice script.
Questo comando può essere eseguito usando gli iwralias , curlo wget .
Esempio
Esempio 1: Inviare una richiesta Web
In questo esempio viene usato il Invoke-WebRequest cmdlet per inviare una richiesta Web al sito Bing.com.
$Response = Invoke-WebRequest -UseBasicParsing -Uri https://www.bing.com?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
I dati restituiti da Invoke-WebRequest vengono archiviati nella $Response variabile . La proprietà InputFields della risposta contiene i campi del modulo.
Where-Object viene usato per filtrare i campi modulo in quelli in cui la proprietà nome è simile a "* Valore". I risultati filtrati vengono inviati tramite pipe a Select-Object per selezionare le proprietà Name e Value .
Esempio 2: Usare un servizio Web con stato
Questo esempio illustra come usare il Invoke-WebRequest cmdlet con un servizio Web con stato, ad esempio Facebook.
$R = Invoke-WebRequest https://www.facebook.com/login.php -SessionVariable fb
# This command stores the first form in the Forms property of the $R variable in the $Form variable.
$Form = $R.Forms[0]
# This command shows the fields available in the form.
$Form.Fields
Key Value
--- -----
...
email
pass
...
# These commands populate the username and password of the respective form fields.
$Form.Fields["email"]="User01@Fabrikam.com"
$Form.Fields["pass"]="P@ssw0rd"
# This command creates the Uri that will be used to log in to facebook.
# The value of the Uri parameter is the value of the Action property of the form.
$Uri = "https://www.facebook.com" + $Form.Action
# Now the Invoke-WebRequest cmdlet is used to sign into the Facebook web service.
# The WebRequestSession object in the $FB variable is passed as the value of the WebSession parameter.
# The value of the Body parameter is the hash table in the Fields property of the form.
# The value of the *Method* parameter is POST. The command saves the output in the $R variable.
$R = Invoke-WebRequest -Uri $Uri -WebSession $FB -Method Post -Body $Form.Fields
$R.StatusDescription
Il primo comando usa il Invoke-WebRequest cmdlet per inviare una richiesta di accesso. Il comando specifica il valore "FB" per il valore del parametro SessionVariable e salva il risultato nella $R variabile. Al termine del comando, la $R variabile contiene un HtmlWebResponseObject e la $FB variabile contiene un oggetto WebRequestSession .
Dopo l'accesso del Invoke-WebRequest cmdlet a facebook, la proprietà StatusDescription dell'oggetto risposta Web nella $R variabile indica che l'utente ha eseguito l'accesso.
Esempio 3: Ottenere collegamenti da una pagina Web
Questo comando ottiene i collegamenti inclusi in una pagina Web.
(Invoke-WebRequest -Uri "https://devblogs.microsoft.com/powershell/").Links.Href
Il Invoke-WebRequest cmdlet ottiene il contenuto della pagina Web. Viene quindi utilizzata la proprietà Links dell'oggetto HtmlWebResponseObject restituito per visualizzare la proprietà Href di ogni collegamento.
Esempio 4: Intercettare messaggi non riusciti da Invoke-WebRequest
Quando Invoke-WebRequest rileva un messaggio HTTP non riuscito (404, 500 e così via), non restituisce alcun output e genera un errore irreversibile. Per rilevare l'errore e visualizzare StatusCode, è possibile racchiudere l'esecuzione in un try/catch blocco.
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
L'errore irreversibile viene intercettato dal catch blocco , che recupera statusCode dall'oggetto Exception .
Esempio 5: Scaricare più file contemporaneamente
Il Invoke-WebRequest cmdlet può scaricare un solo file alla volta. Nell'esempio seguente viene Start-ThreadJob usato per creare più processi di thread per scaricare più file contemporaneamente.
$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
}
Annotazioni
Per usare il Start-ThreadJob cmdlet è necessario installare il modulo ThreadJob da PowerShell Gallery.
Parametri
-Body
Specifica il corpo della richiesta. Il corpo è il contenuto della richiesta che segue le intestazioni.
È anche possibile inviare tramite pipe un valore del corpo a Invoke-WebRequest.
Il parametro corpo può essere usato per specificare un elenco di parametri di query o specificare il contenuto della risposta.
Quando l'input è una richiesta GET e il corpo è un IDictionary (in genere, una tabella hash), il corpo viene aggiunto all'URI come parametri di query. Per altri tipi di richiesta, ad esempio POST, il corpo viene impostato come valore del corpo della richiesta nel formato standard name=value .
Quando il corpo è un modulo o è l'output di una Invoke-WebRequest chiamata, PowerShell imposta il contenuto della richiesta sui campi modulo.
Per esempio:
$r = Invoke-WebRequest https://website.com/login.aspx
$r.Forms[0].Name = "MyName"
$r.Forms[0].Password = "MyPassword"
Invoke-RestMethod https://website.com/service.aspx -Body $r
- o-
Invoke-RestMethod https://website.com/service.aspx -Body $r.Forms[0]
Proprietà dei parametri
| Tipo: | Object |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Certificate
Specifica il certificato client usato per una richiesta Web sicura. Immettere una variabile contenente un certificato o un comando o un'espressione che ottiene il certificato.
Per trovare un certificato, utilizzare Get-PfxCertificate oppure il cmdlet Get-ChildItem nell'unità Certificate (Cert:). Se il certificato non è valido o non dispone di un'autorità sufficiente, il comando ha esito negativo.
Proprietà dei parametri
| Tipo: | X509Certificate |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-CertificateThumbprint
Specifica il certificato di chiave pubblica digitale (X509) di un account utente autorizzato a inviare la richiesta. Immettere l'impronta digitale del certificato.
I certificati vengono usati nell'autenticazione basata su certificati client. I certificati possono essere mappati solo agli account utente locali, non agli account di dominio.
Per visualizzare l'impronta digitale del certificato, usare il comando Get-Item o Get-ChildItem per trovare il certificato in Cert:\CurrentUser\My.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ContentType
Specifica il tipo di contenuto della richiesta Web.
Se il valore per ContentType contiene il formato di codifica (come charset), il cmdlet usa tale formato per codificare il corpo della richiesta Web. Se il ContentType non specifica un formato di codifica, viene invece usato il formato di codifica predefinito. Un esempio di ContentType con un formato di codifica è text/plain; charset=iso-8859-5, che specifica l'alfabeto latino/cirillico.
Se si omette il parametro , il tipo di contenuto può essere diverso in base al metodo HTTP usato:
- Per un metodo POST, il tipo di contenuto è
application/x-www-form-urlencoded - Per un metodo PUT, il tipo di contenuto è
application/json - Per altri metodi, il tipo di contenuto non viene specificato nella richiesta
Se si usa il parametro InFile per caricare un file, è necessario impostare il tipo di contenuto.
In genere, il tipo deve essere application/octet-stream. È tuttavia necessario impostare il tipo di contenuto in base ai requisiti dell'endpoint.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Credential
Specifica un account utente che dispone dell'autorizzazione per inviare la richiesta. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio User01 o Domain01\User01oppure immettere un oggetto PSCredential generato dal cmdlet Get-Credential.
Le credenziali vengono archiviate in un oggetto PSCredential e la password viene archiviata come SecureString.
Annotazioni
Per ulteriori informazioni sulla protezione dei dati di SecureString, vedere Quanto è sicuro SecureString?.
Proprietà dei parametri
| Tipo: | PSCredential |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-DisableKeepAlive
Indica che il cmdlet imposta il valore KeepAlive nell'intestazione HTTP su False. Per impostazione predefinita, KeepAlive è True. KeepAlive stabilisce una connessione permanente al server per facilitare le richieste successive.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Headers
Specifica le intestazioni della richiesta web. Immettere una tabella hash o un dizionario.
Per impostare le intestazioni UserAgent , usare il parametro UserAgent . Non è possibile utilizzare questo parametro per specificare intestazioni UserAgent o cookie.
Proprietà dei parametri
| Tipo: | IDictionary |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-InFile
Ottiene il contenuto del corpo della richiesta Web da un file. Immettere un percorso e un nome file. Se si omette il percorso, il valore predefinito è il percorso corrente.
È anche necessario impostare il tipo di contenuto della richiesta. Ad esempio, per caricare un file è necessario impostare il tipo di contenuto. In genere, il tipo deve essere application/octet-stream. È tuttavia necessario impostare il tipo di contenuto in base ai requisiti dell'endpoint.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-MaximumRedirection
Specifica quante volte PowerShell reindirizza una connessione a un URI (Uniform Resource Identifier) alternativo prima che la connessione non riesca. Il valore predefinito è 5. Il valore 0 (zero) impedisce tutto il reindirizzamento.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Method
Specifica il metodo utilizzato per la richiesta Web. I valori accettabili per questo parametro sono:
DefaultDeleteGetHeadMergeOptionsPatchPostPutTrace
Proprietà dei parametri
| Tipo: | WebRequestMethod |
| Valore predefinito: | None |
| Valori accettati: | Default, Get, Head, Post, Put, Delete, Trace, Options, Merge, Patch |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-OutFile
Specifica il file di output per il quale questo cmdlet salva il corpo della risposta. Immettere un percorso e un nome file. Se si omette il percorso, il valore predefinito è il percorso corrente.
Per impostazione predefinita, Invoke-WebRequest restituisce i risultati alla pipeline. Per inviare i risultati a un file e alla pipeline, usare il parametro PassThru .
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-PassThru
Indica che il cmdlet restituisce i risultati, oltre a scriverli in un file. Questo parametro è valido solo quando nel comando viene usato anche il parametro outfile.
Annotazioni
Quando si usa il parametro PassThru, l'output viene scritto nella pipeline, ma il file è vuoto. Per altre informazioni, vedere problema di PowerShell #15409.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Proxy
Specifica un server proxy per la richiesta, anziché connettersi direttamente alla risorsa Internet. Immettere l'URI di un server proxy di rete.
Proprietà dei parametri
| Tipo: | Uri |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ProxyCredential
Specifica un account utente autorizzato a usare il server proxy specificato dal parametro Proxy . Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio
Questo parametro è valido solo quando nel comando viene usato anche il parametro proxy. Non è possibile usare i parametri ProxyCredential e ProxyUseDefaultCredentials nello stesso comando.
Proprietà dei parametri
| Tipo: | PSCredential |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-ProxyUseDefaultCredentials
Indica che il cmdlet usa le credenziali dell'utente corrente per accedere al server proxy specificato dal parametro Proxy .
Questo parametro è valido solo quando nel comando viene usato anche il parametro proxy. Non è possibile usare i parametri ProxyCredential e ProxyUseDefaultCredentials nello stesso comando.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SessionVariable
Specifica una variabile per cui questo cmdlet crea una sessione di richiesta Web e la salva nel valore .
Immettere un nome di variabile senza il simbolo del dollaro ($).
Quando si specifica una variabile di sessione, Invoke-WebRequest crea un oggetto sessione di richiesta Web e lo assegna a una variabile con il nome specificato nella sessione di PowerShell. È possibile usare la variabile nella sessione non appena il comando viene completato.
A differenza di una sessione remota, la sessione di richiesta Web non è una connessione permanente. Si tratta di un oggetto che contiene informazioni sulla connessione e sulla richiesta, inclusi cookie, credenziali, il valore massimo di reindirizzamento e la stringa dell'agente utente. È possibile usarlo per condividere lo stato e i dati tra le richieste Web.
Per usare la sessione di richiesta Web nelle richieste Web successive, specificare la variabile di sessione nel valore del parametro WebSession. PowerShell usa i dati nell'oggetto sessione di richiesta Web quando si stabilisce la nuova connessione. Per eseguire l'override di un valore nella sessione di richiesta Web, usare un parametro cmdlet, ad esempio UserAgent o Credenziali. I valori dei parametri hanno la precedenza sui valori nella sessione di richiesta Web.
Non è possibile usare i parametri SessionVariable e WebSession nello stesso comando.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | SV |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-TimeoutSec
Specifica per quanto tempo la richiesta può essere in sospeso prima del timeout. Immettere un valore in secondi. Il valore predefinito, 0, specifica un timeout indefinito.
La restituzione o il timeout di una query DNS (Domain Name System) può richiedere fino a 15 secondi. Se la richiesta contiene un nome host che richiede la risoluzione e si imposta TimeoutSec su un valore maggiore di zero, ma inferiore a 15 secondi, possono essere necessari 15 secondi o più prima che venga generata un'eccezione WebException e il timeout della richiesta.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-TransferEncoding
Specifica un valore per l'intestazione della risposta HTTP di codifica del trasferimento. I valori accettabili per questo parametro sono:
ChunkedCompressDeflateGZipIdentity
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Valori accettati: | chunked, compress, deflate, gzip, identity |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Uri
Specifica l'URI (Uniform Resource Identifier) della risorsa Internet alla quale viene inviata la richiesta Web. Immettere un URI. Questo parametro supporta valori HTTP, HTTPS, FTP e FILE.
Questo parametro è obbligatorio. Il nome del parametro Uri è facoltativo.
Proprietà dei parametri
| Tipo: | Uri |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-UseBasicParsing
Indica che il cmdlet usa l'oggetto risposta per il contenuto HTML senza l'analisi DOM (Document Object Model). Questo parametro è obbligatorio quando Internet Explorer non è installato nei computer, ad esempio in un'installazione dei componenti di base di un sistema operativo Windows Server.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-UseDefaultCredentials
Indica che il cmdlet usa le credenziali dell'utente corrente per inviare la richiesta Web.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-UserAgent
Specifica una stringa dell'agente utente per la richiesta Web. L'agente utente predefinito è simile a Mozilla/5.0 (Windows NT; Windows NT 6.1; en-US) WindowsPowerShell/3.0 con lievi variazioni per ogni sistema operativo e piattaforma.
Per testare un sito Web con la stringa dell'agente utente standard usata dalla maggior parte dei browser Internet, utilizzare le proprietà della classe PSUserAgent, ad esempio Chrome, Firefox, InternetExplorer, Opera e Safari. Ad esempio, il comando seguente usa la stringa dell'agente utente per Internet Explorer: Invoke-WebRequest -Uri https://website.com/ -UserAgent ([Microsoft.PowerShell.Commands.PSUserAgent]::InternetExplorer)
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WebSession
Specifica una sessione di richiesta Web. Immettere il nome della variabile, incluso il segno di dollaro ($).
Per eseguire l'override di un valore nella sessione di richiesta Web, usare un parametro cmdlet, ad esempio UserAgent o Credenziali. I valori dei parametri hanno la precedenza sui valori nella sessione di richiesta Web.
A differenza di una sessione remota, la sessione di richieste Web non è una connessione permanente. Si tratta di un oggetto che contiene le informazioni sulla connessione e sulla richiesta, inclusi cookie, credenziali, il valore massimo di reindirizzamento e la stringa agente utente. È possibile usarlo per condividere lo stato e i dati tra le richieste Web.
Per creare una sessione di richiesta Web, immettere un nome di variabile, senza un segno di dollaro, nel valore del parametro SessionVariable di un comando Invoke-WebRequest.
Invoke-WebRequest crea la sessione e la salva nella variabile . Nei comandi successivi usare la variabile come valore del parametro webSession.
Non è possibile usare i parametri SessionVariable e WebSession nello stesso comando.
Proprietà dei parametri
| Tipo: | WebRequestSession |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
Object
È possibile inviare tramite pipe il corpo di una richiesta Web a questo cmdlet.
Output
HtmlWebResponseObject
Questo cmdlet restituisce l'oggetto risposta che rappresenta il risultato della richiesta Web.
Note
Windows PowerShell include gli alias seguenti per Invoke-WebRequest:
iwrcurlwget