From 497d048b1cba2adce2ba4c58250242aaf6befd19 Mon Sep 17 00:00:00 2001 From: James Lanng Date: Wed, 10 May 2017 10:44:40 +0100 Subject: [PATCH] Support corporate proxy servers --- scripts/obtain/dotnet-install.ps1 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/obtain/dotnet-install.ps1 b/scripts/obtain/dotnet-install.ps1 index c2f5e6d15..a9a67c958 100644 --- a/scripts/obtain/dotnet-install.ps1 +++ b/scripts/obtain/dotnet-install.ps1 @@ -140,6 +140,17 @@ function GetHTTPResponse([Uri] $Uri) try { # HttpClient is used vs Invoke-WebRequest in order to support Nano Server which doesn't support the Invoke-WebRequest cmdlet. Load-Assembly -Assembly System.Net.Http + + if(-not $ProxyAddress) + { + # Despite no proxy being explicitly specified, we may still be behind a default proxy + $DefaultProxy = [System.Net.WebRequest]::DefaultWebProxy; + if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))){ + $ProxyAddress = $DefaultProxy.GetProxy($Uri).OriginalString + $ProxyUseDefaultCredentials = $true + } + } + if($ProxyAddress){ $HttpClientHandler = New-Object System.Net.Http.HttpClientHandler $HttpClientHandler.Proxy = New-Object System.Net.WebProxy -Property @{Address=$ProxyAddress;UseDefaultCredentials=$ProxyUseDefaultCredentials}