Comment puis-je faire Invoke-RestMethod utiliser la valeur par défaut de proxy web?

Le suivant fonctionne très bien sur ma machine qui n'utilise pas de proxy web.

return Invoke-RestMethod 
   -Uri $server$url 
   -ContentType $contentType 
   -Headers $headers 
   -Method $method 
   -UseDefaultCredentials 

Remarque: le $server$url est un https adresse, quelque chose comme https://somewhere.example.com/api/data

Maintenant, je vais essayer de l'obtenir pour fonctionner dans un environnement d'entreprise, mais j'obtiens une erreur 401.

Je pense que c'est parce qu'il est un proxy d'entreprise qui est défini avec un proxy.fichier pac. J'ai confirmé que je peux aller à la $server$url URI à partir d'Internet Explorer. Que dois-je faire pour obtenir le Invoke-RestMethod de commande à l'aide des mêmes paramètres?

J'ai essayé d'ajouter le -proxy paramètre

$proxy = [System.Net.WebRequest]::GetSystemWebProxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials

return Invoke-RestMethod 
    -Uri $server$url 
    -ContentType $contentType 
    -Headers $headers 
    -Method $method 
    -UseDefaultCredentials 
    -Proxy $proxy 
    -ProxyUseDefaultCredentials

mais le paramètre de Proxy s'attend à une URI pas un IWebProxy objet.

OriginalL'auteur shamp00 | 2013-12-09