Chr*_*ris 7 powershell powershell-3.0
在PowerShell 2.0下,我知道您可以通过执行以下操作来设置您想要使用的代理,而无需知道确切的代理设置:
$proxy = [System.Net.WebRequest]::GetSystemWebproxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是,如果我不知道代理设置可以使用上面的内容并将其与PowerShell 3.0结合使用Invoke-WebRequest.这是我希望能够做到的:
$proxy = [System.Net.WebRequest]::GetSystemWebproxy()
$proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials
$WS.Proxy = $proxy
$login = Invoke-WebRequest https://website.com/login_form.html -SessionVariable WS
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,我收到一个错误(显然是来自我的公司代理),表明我的凭据无法验证.我希望这最终会奏效,但也许我只是犯了一个简单的错误.
Sha*_*evy 14
也许这可以提供帮助,我将其保留在我的个人资料中.它使用新的$PSDefaultParameterValues首选项变量来设置新Web cmdlet的默认代理值.代码检测我是否在我的办公室环境中并相应地设置设置.这节省了我每次使用这些命令时指定的设置.
if(Test-Connection myCorpProxy -Count 1 -Quiet)
{
$global:PSDefaultParameterValues = @{
'Invoke-RestMethod:Proxy'='http://myCorpProxy:8080'
'Invoke-WebRequest:Proxy'='http://myCorpProxy:8080'
'*:ProxyUseDefaultCredentials'=$true
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
使用可以使用此代码:
$dest = "http://www.google.fr"
$proxyurl = ([System.Net.WebRequest]::GetSystemWebproxy()).GetProxy($dest)
Invoke-WebRequest $dest -Proxy $proxyurl -ProxyUseDefaultCredentials
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16422 次 |
| 最近记录: |