Comment passer un identifiant et un mot de passe pour utiliser Invoke-WebRequest -Uri $adresse ?

Réponses rédigées par Antoine
Dernière mise à jour : 2022-08-13 21:59:41
Question

Dans un script PowerShell j'ai codé :

$scrap = Invoke-WebRequest -Uri $adresse

et j'obtiens ces messages :

Invoke-WebRequest :
Authentication Required
You must be authenticated to access this URL.
URL:
generated 2022-08-13 18:52:03 by server :
frparsdsvcpx04
Au caractère C:\Users\e45881\OneDrive - BNP Paribas\Berjot_BNP_01\Auto_refresh\rafr_auto_03.ps1:24 : 10
+ $scrap = Invoke-WebRequest -Uri $adresse
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation : (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

je suppose que je dois fournir mon identifiant et mon mot de passe d'une certaine manière pour que tout fonctionne comme quand je consulte cette adresse avec Edge. Merci d'avance de m'indiquer comment faire si c'est possible.

Réponse

Bonjour,

Tout dépend de ce à quoi vous voulez vous connecter : un site avec un formulaire de connexion, en POST ou en GET ? Une authentification du type HTACCESS/HTPASSWD ? autre ?

Dans tous les cas vous devrez passer des arguments en paramètre.

Il vous faudra aussi peut être créer un contexte de flux pour y intégrer l'entête adéquate (le header) ; et aussi récupérer un cookie et ou une session.

Pour cela confère la page suivante où vous trouverez plusieurs exemple selon le cas de figure ; ainsi que la liste des arguments à passer en paramètre : https://docs.microsoft.com/fr-fr/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7.2