Section courante

A propos

Section administrative du site

Invoke-WebRequest

Invoque une requête Web
PowerShell

Syntaxe

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

Paramètres

Nom Description
-AllowUnencryptedAuthentication Ce paramètre permet d'indiquer l'envoi d'informations d'identification et de secrets via des connexions non chiffrées. Par défaut, la fourniture d'informations d'identification ou de toute option d'authentification avec un Uri ne commençant pas par https:// entraîne une erreur et la demande est abandonnée pour empêcher la communication involontaire de secrets en texte brut sur des connexions non chiffrées. Pour remplacer ce comportement à vos propres risques, fournissez le paramètre -AllowUnencryptedAuthentication.
-Authentication Ce paramètre permet d'indiquer le type d'authentification explicite à utiliser pour la requête. La valeur par défaut est None. L'authentification ne peut pas être utilisée avec UseDefaultCredentials. Les options d'authentification disponibles sont :
Valeur Description
None Cette valeur permet d'indiquer qu'aucune authentification explicite n'est utilisée. Il s'agit de l'option par défaut lorsque l'authentification n'est pas fournie.
Basic Cette valeur permet d'indiquer qu'il est nécessaire qu'il y ait des informations d'identification. Les informations d'identification sont envoyées dans un entête d'authentification de base RFC 7617 au format base64 (utilisateur:mot-de-passe).
Bearer Cette valeur permet d'indiquer qu'il nécessite un jeton. Envoie une autorisation RFC 6750: entête de support avec le jeton fourni. Ceci est un alias pour OAuth.
OAuth Cette valeur permet d'indiquer qu'il nécessite un jeton. Envoie une autorisation RFC 6750: e-tête de support avec le jeton fourni. Ceci est un alias pour Bearer.
-Body Ce paramètre permet d'indiquer le corps de la demande. Le corps est le contenu de la requête suivant les entêtes. Vous pouvez également diriger une valeur de corps vers Invoke-WebRequest. Le paramètre -Body peut être utilisé pour spécifier une liste de paramètres de requête ou pour spécifier le contenu de la réponse.
-Certificate Ce paramètre permet d'indiquer le certificat client utilisé pour une demande Web sécurisée. Entrez une variable contenant un certificat ou une commande ou une expression demandant le certificat. Pour rechercher un certificat, utilisez Get-PfxCertificate ou utilisez la commandlette Get-ChildItem dans l'unité Certificate (Cert:). Si le certificat n'est pas valide ou ne dispose pas d'une autorité suffisante, la commande échoue.
-CertificateThumbprint Ce paramètre permet d'indiquer le certificat de clef publique numérique (X509) d'un compte d'utilisateur autorisé à envoyer la requête. Entrez l'empreinte numérique du certificat. Les certificats sont utilisés dans l'authentification basée sur les certificats client. Ils peuvent être cartographiés uniquement aux comptes d'utilisateurs locaux; ils ne fonctionnent pas avec les comptes de domaine. Pour obtenir une empreinte de certificat, utilisez la commande Get-Item ou Get-ChildItem dans l'unité Cert: de PowerShell.
-ContentType Ce paramètre permet d'indiquer le type de contenu de la requête Web. Si ce paramètre est omis et que la méthode de requête est POST, Invoke-WebRequest définit le type de contenu sur application /x-www-form-urlencoded. Sinon, le type de contenu n'est pas spécifié dans l'appel. Le ContentType est remplacé lorsqu'un objet MultipartFormDataContent est fourni pour Body.
-Credential Ce paramètre permet d'indiquer un compte d'utilisateur autorisé à envoyer la requête. La valeur par défaut est l'utilisateur actuel. Tapez un nom d'utilisateur, tel que User01 ou Domain01\User01, ou entrez un objet PSCredential généré par la commandlette Get-Credential. Les informations d'identification peuvent être utilisées seules ou en conjonction avec certaines options de paramètres d'authentification. Lorsqu'il est utilisé seul, il ne fournit des informations d'identification au serveur à distance que si le serveur distant envoie une demande de défi d'authentification. Lorsqu'elles sont utilisées avec les options d'authentification, les informations d'identification sont envoyées explicitement. Les informations d'identification sont entreposées dans un objet PSCredential et le mot de passe est entreposé en tant que SecureString.
-CustomMethod Ce paramètre permet d'indiquer une méthode personnalisée utilisée pour la requête Web. Il peut être utilisé si la méthode de demande requise par le point de terminaison n'est pas une option disponible sur la méthode. La méthode et la méthode personnalisée ne peuvent pas être utilisées ensemble.
-DisableKeepAlive Ce paramètre permet d'indiquer que la commandlette définit la valeur KeepAlive dans l'entête HTTP sur False. Par défaut, KeepAlive a la valeur True. Le KeepAlive établit une connexion persistante au serveur pour faciliter les demandes ultérieures.
-Form Ce paramètre permet de convertir un dictionnaire en une soumission multipart/form-data. Le paramètre -Form ne peut pas être utilisé avec Body. Si ContentType est utilisé, il est ignoré. Les clefs du dictionnaire sont utilisées comme noms de champs de formulaire. Par défaut, les valeurs de formulaire sont converties en valeurs de chaîne de caractères. Si la valeur est un objet System.IO.FileInfo, le contenu du fichier binaire est soumis. Le nom du fichier est soumis en tant que propriété de nom de fichier. Le type MIME est défini comme application/flux d'octets. Le Get-Item peut être utilisé pour simplifier la fourniture de l'objet System.IO.FileInfo.
-Headers Ce paramètre permet d'indiquer les entêtes de la requête Web. Entrez une table de hachage ou un dictionnaire. Pour définir les entêtes UserAgent, utilisez le paramètre -UserAgent. Vous ne pouvez pas utiliser ce paramètre pour spécifier des entêtes User-Agent ou cookie. Les entêtes liés au contenu, tels que Content-Type, sont remplacés lorsqu'un objet MultipartFormDataContent est fourni pour Body.
-InFile Ce paramètre permet de demander le contenu de la requête Web à partir d'un fichier. Entrez un chemin et un nom de fichier. Si vous omettez le chemin, la valeur par défaut est l'emplacement actuel.
-MaximumRedirection Ce paramètre permet d'indiquer le nombre de fois que PowerShell redirige une connexion vers un autre URI (Uniform Resource Identifier) avant l'échec de la connexion. La valeur par défaut est 5. Une valeur de 0 (zéro) empêche toute redirection.
-MaximumRetryCount Ce paramètre permet d'indiquer le nombre de tentatives de connexion par PowerShell lorsqu'un code d'échec compris entre 400 et 599 inclus ou 304 est reçu. Consultez également le paramètre RetryIntervalSec pour spécifier le nombre de tentatives.
-Method Ce paramètre permet d'indiquer la méthode utilisée pour la requête Web. Les valeurs acceptables pour ce paramètre sont :
Valeur Description
Default Cette valeur permet d'indiquer la méthode par défaut.
Delete Cette valeur permet d'indiquer qu'il faut supprimer une ressource du serveur Web.
Get Cette valeur permet d'indiquer que l'envoi s'effectue en passant les champs du formulaires en paramètre URL.
Head Cette valeur permet d'uniquement demander les informations sur une ressource, sans envoyés le corps.
Merge Cette valeur permet d'indiquer la méthode de fusion.
Options Cette valeur permet de demander les options de communications disponibles sur le serveur Web.
Patch Cette valeur permet d'effectuer une modification partielle d'une ressource transmise.
Post Cette valeur permet d'indiquer que l'envoi s'effectue dans le corps de la requête.
Put Cette valeur permet d'ajouter ou d'effectuer un envoi complet d'une ressource sur le serveur Web.
Trace Cette valeur permet d'effectuer des tests de traçage ou de diagnostique de communication.
Le paramètre -CustomMethod peut être utilisé pour les méthodes de requête non répertoriées ci-dessus.
-NoProxy Ce paramètre permet d'indiquer que la commandlette ne doit pas utiliser de proxy pour atteindre la destination. Lorsque vous devez contourner le proxy configuré dans l'environnement, utilisez ce commutateur. Cette fonctionnalité a été ajoutée dans PowerShell 6.0.0.
-OutFile Ce paramètre permet d'indiquer le fichier de sortie pour lequel cette commandlette enregistre le corps de la réponse. Entrez un chemin et un nom de fichier. Si vous omettez le chemin, la valeur par défaut est l'emplacement actuel. Le nom est traité comme un chemin littéral. Les noms contenant des crochets ([]) doivent être placés entre guillemets simples ('). Par défaut, Invoke-WebRequest renvoie les résultats une ligne de tuyau. Pour envoyer les résultats à un fichier et à une ligne de tuyau, utilisez le paramètre -Passthru.
-PassThru Ce paramètre permet d'indiquer que la commandlette renvoie les résultats, en plus de les écrire dans un fichier. Ce paramètre n'est valide que lorsque le paramètre -OutFile est également utilisé dans la commande.
-PreserveAuthorizationOnRedirect Ce paramètre permet d'indiquer que la commandlette doit conserver l'entête Authorization, lorsqu'il est présent, entre les redirections. Par défaut, la commandlette supprime l'entête d'autorisation avant la redirection. La spécification de ce paramètre désactive cette logique pour les cas où l'entête doit être envoyé à l'emplacement de redirection. Cette fonctionnalité a été ajoutée dans PowerShell 6.0.0.
-Proxy Ce paramètre permet d'indiquer un serveur proxy pour la demande, plutôt que de se connecter directement à la ressource Internet. Entrez l'URI d'un serveur proxy réseau.
-ProxyCredential Ce paramètre permet d'indiquer un compte d'utilisateur autorisé à utiliser le serveur proxy spécifié par le paramètre Proxy. La valeur par défaut est l'utilisateur actuel.
-ProxyUseDefaultCredentials Ce paramètre permet d'indiquer que la commandlette utilise les informations d'identification de l'utilisateur actuel pour accéder au serveur proxy spécifié par le paramètre Proxy. Ce paramètre n'est valide que lorsque le paramètre -Proxy est également utilisé dans la commande. Vous ne pouvez pas utiliser les paramètres -ProxyCredential et -ProxyUseDefaultCredentials dans la même commande.
-Resume Ce paramètre permet d'effectuer une tentative au mieux pour reprendre le téléchargement d'un fichier partiel. Le paramètre -Resume nécessite le paramètre -OutFile.
-RetryIntervalSec Ce paramètre permet d'indiquer l'intervalle entre les tentatives de connexion lorsqu'un code d'échec entre 400 et 599 inclus ou 304 est reçu. Consultez également le paramètre MaximumRetryCount pour spécifier le nombre de tentatives.
-SessionVariable Ce paramètre permet d'indiquer une variable pour laquelle cette commandlette crée une session de requête Web et l'enregistre dans la valeur. Entrez un nom de variable sans le symbole du dollar ($).
-SkipCertificateCheck Ce paramètre permet d'ignorer les contrôles de validation de certificat. Il inclut toutes les validations telles que l'expiration, la révocation, l'autorité racine de confiance,...
-SkipHeaderValidation Ce paramètre permet d'indiquer que la commandlette doit ajouter des entêtes à la requête sans validation. Ce commutateur doit être utilisé pour les sites nécessitant des valeurs d'entête non conformes aux normes. La spécification de ce commutateur désactive la validation pour permettre à la valeur d'être transmise sans cocher. Lorsqu'il est spécifié, tous les entêtes sont ajoutés sans validation. Ce commutateur désactive la validation des valeurs transmises aux paramètres ContentType, Headers et UserAgent. Cette fonctionnalité a été ajoutée dans PowerShell 6.0.0.
-SkipHttpErrorCheck Ce paramètre permet d'obliger la commandlette à ignorer les états d'erreur HTTP et à continuer de traiter les réponses. Les réponses d'erreur sont écrites dans la ligne de tuyau comme si elles avaient réussi. Ce paramètre a été introduit dans PowerShell 7.
-SslProtocol Ce paramètre permet de définir les protocoles SSL/TLS autorisés pour la requête Web. Par défaut, tous les protocoles SSL/TLS pris en charge par le système sont autorisés. Le paramètre -SslProtocol permet de se limiter à des protocoles spécifiques à des fins de conformité. Le -SslProtocol utilise l'énumération d'indicateur -WebSslProtocol. Il est possible de fournir plus d'un protocole en utilisant la notation par indicateur ou en combinant plusieurs options -WebSslProtocol avec bor, mais la fourniture de plusieurs protocoles n'est pas prise en charge sur toutes les plates-formes.
-TimeoutSec Ce paramètre permet d'indiquer la durée pendant laquelle la requête peut être en attente avant son expiration. Entrez une valeur en secondes. La valeur par défaut, 0, spécifie un délai d'expiration indéfini. Une requête DNS (Domain Name System) peut prendre jusqu'à 15 secondes pour revenir ou expirer. Si votre demande contient un nom d'hôte nécessitant une résolution et que vous définissez TimeoutSec sur une valeur supérieure à zéro, mais inférieure à 15 secondes, il peut prendre 15 secondes ou plus avant qu'une WebException soit levée et que votre requête expire.
-Token Ce paramètre permet d'indiquer le jeton OAuth ou Bearer à inclure dans la requête. Le jeton est requis par certaines options d'authentification. Il ne peut pas être utilisé indépendamment.
-TransferEncoding Ce paramètre permet d'indiquer une valeur pour l'entête de réponse HTTP de codage de transfert. Les valeurs acceptables pour ce paramètre sont : Chunked, Compress, Deflate, GZip, Identity.
-Uri Ce paramètre permet d'indiquer l'identificateur de ressource uniforme (URI) de la ressource Internet à laquelle la demande Web est envoyée. Entrez un URI. Ce paramètre prend uniquement en charge HTTP ou HTTPS. Ce paramètre est obligatoire. Le nom de paramètre Uri est facultatif.
-UseBasicParsing Ce paramètre permet d'utiliser l'analyse de base. Ce paramètre est obsolète. À partir de PowerShell 6.0.0, toutes les requêtes Web utilisent uniquement l'analyse de base. Ce paramètre est inclus à des fins de compatibilité descendante uniquement et toute utilisation de celui-ci n'a aucun effet sur le fonctionnement de la commandlette.
-UseDefaultCredentials Ce paramètre permet d'indiquer que la commandlette utilise les informations d'identification de l'utilisateur actuel pour envoyer la demande Web. Il ne peut pas être utilisé avec l'authentification ou les informations d'identification et peut ne pas être pris en charge sur toutes les plates-formes.
-UserAgent Ce paramètre permet d'indiquer une chaîne de caractères d'agent utilisateur pour la requête Web.
-WebSession Ce paramètre permet d'indiquer une session de requête Web. Entrez le nom de la variable, y compris le signe dollar ($).

Description

Cette commande permet de demander le contenu d'un page Web dans l'Internet.

Remarques

Exemple

L'exemple suivant permet d'envoyer une requête HTTP de TEST à l'API :

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


Dernière mise à jour : Mardi, le 12 Janvier 2021