Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#$cred = Get-Credential $ProxyCreds
$SecPass = ConvertTo-Securestring $ProxyPass -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ProxyUser, $SecPass
$WebrequestParams['ProxyCredential']=$cred
Getting ADOBE server version (ESR)...FAIL!
Can't verify ADOBE server version! Error: [The remote server returned an error:
(407) Proxy Authentication Required.].
$ProxyUser = "user"
$ProxyPass = "pass"
$Proxy = "http://xxx.xxx.xxx.xxx:xxxx"
$url = 'http://www.adobe.com/ru/products/flashplayer/distribution3.html'
#Auth
$pair = "$($ProxyUser):$($ProxyPass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
#Proxy
$prox = new-object net.WebProxy;
$prox.Address = $Proxy
# Request
$req = [net.webRequest]::Create($url)
$req.method = "GET"
$req.Host = "www.adobe.com"
$req.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:42.0) Gecko/20100101 Firefox/42.0"
$req.Proxy = $prox
$req.Headers['Proxy-Authorization'] = "Basic $encodedCreds";
#Responce
$resp = $req.GetResponse()
$stream = new-object io.streamreader $resp.GetResponseStream()
$res = $stream.readtoend()
$res
$cred = Get-Credential $ProxyCreds
$UserName = $cred.UserName
$Password = $cred.GetNetworkCredential().Password
$Proxy = "http://xxx.xxx.xxx.xxx:xxxx"
$ProxyCreds = "user"
$cred = Get-Credential $ProxyCreds
$UserName = $cred.UserName
$Password = $cred.GetNetworkCredential().Password
try {
Invoke-WebRequest -Uri "http://ya.ru" -Proxy $Proxy -ProxyUseDefaultCredentials
} catch {
Write-Host -f Red "Error: [$($_.Exception.Message)]."
break
}

$Proxy = "http://xxx.xxx.xxx.xxx:xxxx"
$ProxyCreds = "user"
$cred = Get-Credential $ProxyCreds
$UserName = $cred.UserName
$Password = $cred.GetNetworkCredential().Password
$pair = "$($UserName):$($Password)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$Headers = @{
'Proxy-Authorization' = "Basic $encodedCreds"
}
try {
Invoke-WebRequest -Uri "http://ya.ru" -Proxy $Proxy -ProxyUseDefaultCredentials -Headers $Headers
} catch {
Write-Host -f Red "Error: [$($_.Exception.Message)]."
break
}

$creds просто не используется, т.е. вы действительно не передаёте данные для авторизации :-)-ProxyUseDefaultCredentials использует для авторизации на прокси УЗ, от имени которой выполняется скрипт. Если сквозная авторизация на прокси не настроена — этот флаг для вас бесполезен — только явная передача данных для авторизации. Соответственно, нужно передавать авторизацию либо через -ProxyCredential, либо как-то по-другому, если прокси не принимает авторизацию от PowerShell стандартным способом. Ваш вариант — тоже вполне себе вариант.ProxyBasicAuth, и добавить для него вариант отправки авторизации в Basic формате.try {
Invoke-WebRequest -Uri "http://ya.ru" -Proxy "http://xx.xx.xx.xxx:xxxx" -ProxyCredential(Get-Credential)
} catch {
Write-Host -f Red "Error: [$($_.Exception.Message)]."
break
}
Invoke-WebRequest -Uri "http://ya.ru" -Proxy $Proxy -Headers $Headers
Внутренний сервер обновления Adobe Flash Player