Exécuter la commande Curl dans PowerShell

Migel Hewage Nimesha 21 décembre 2022
Exécuter la commande Curl dans PowerShell

Le système d’exploitation Windows prend en charge un certain nombre d’outils de ligne de commande qui peuvent être très utiles dans l’automatisation. curl est l’un de ces outils utiles qui peuvent être utilisés pour effectuer des requêtes depuis ou vers un serveur via l’un des protocoles pris en charge tels que HTTP, HTTPS, FTP, FTPS, SMTP, etc… Cet outil en ligne de commande prend en charge certains des fonctionnalités supplémentaires telles que le téléchargement FTP, la prise en charge du proxy, le transfert de reprise et la bande passante limitée.

Depuis la version 1804 officielle de Windows, curl a été ajouté à sa chaîne d’outils. Vous pouvez vérifier cela en ouvrant l’invite de commande Windows et en exécutant la commande suivante.

curl --version

Production :

curl 7.55.1 (windows)

La sortie peut être modifiée en fonction de votre installation curl.

La curl dans Windows PowerShell

Dans Windows PowerShell, vous devez utiliser la commande curl d’une manière légèrement différente de celle de l’invite de commande Windows. Parce que la commande curl est mappée en tant qu’alias à la cmdlet Invoke-WebRequest. Vous pouvez le vérifier en exécutant la commande suivante dans une fenêtre PowerShell.

Get-Alias -Name curl

Production :

CommandType		Name						Version		Source
-----------		----						-------		------
Alias			curl -> Invoke-WebRequest

Toutes ces commandes seront résolues dans le processus d’exécution de la commande PowerShell. Habituellement, les alias ont la priorité la plus élevée. Par conséquent, vous devez utiliser l’exécutable curl.exe directement dans le PowerShell au lieu de curl. Vous pouvez utiliser la cmdlet Get-Command pour voir comment ces deux commandes sont résolues lors de l’exécution.

Get-Command curl

Production :

CommandType		Name						Version		Source
-----------		----						-------		------
Alias			curl -> Invoke-WebRequest
Get-Command curl.exe

Production :

CommandType		Name						Version		Source
-----------		----						-------		------
Application		curl.exe					7.55.1.0	C:\Windows\system32\curl.exe

La conclusion est que si vous devez utiliser le curl (comme dans l’invite de commande Windows) dans PowerShell, vous devez appeler directement l’exécutable curl (curl.exe). Sinon, vous devez vous en tenir à l’alias curl de PowerShell qui se résout à la cmdlet Invoke-WebRequest sous le capot.

La syntaxe curl dans PowerShell

curl.exe [options] <url>

Vous pouvez exécuter la commande suivante pour obtenir plus d’informations sur la commande curl et ses options telles que -a, -C, etc…

curl.exe --help

Production :

Usage: curl [options...] <url>

-a, --append		Append to target file when uploading
.
.
.
-C, --continue-at	<offset> Resumed transfer offest

Exemples de scénarios

Affiche la page Web HTML comme réponse.

curl.exe https://www.google.com

Affiche la réponse, l’en-tête de demande et l’en-tête de réponse.

curl.exe -v https://www.google.com

Affiche les informations d’en-tête.

curl.exe -I https://www.google.com

Enregistre les informations d’en-tête dans un fichier appelé file1.txt.

curl.exe -I https://www.google.com -o file1.txt
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.