Phi*_*ppe 6 powershell proxy powershell-v6.0 powershell-v5.1
我目前使用的是 Powershell V5.1,并且希望在 Invoke-RestMethod 命令上绕过 Internet Explorer 代理。
在 Powershell V6 中,有 -NoProxy 选项,指示 cmdlet 将不使用代理来到达目标。这是为了绕过 Internet Explorer 中配置的代理,这正是我想要做的。
在 Powershell V6 中,代码类似于:
$Result = Invoke-RestMethod -Uri $url -NoProxy
Run Code Online (Sandbox Code Playgroud)
V5.1 有解决方法吗?
谢谢,菲利普
我知道这已经很老了,但因为我也喜欢有好的解决方案,所以我会将我的解决方案发布到这个线程。我实际上使用了这个并且它工作完美(也适用于 Invoke-WebRequest):
$Proxy=New-object System.Net.WebProxy
$WebSession=new-object Microsoft.PowerShell.Commands.WebRequestSession
$WebSession.Proxy=$Proxy
$Antwort=Invoke-RestMethod -Method Post -Uri "https://thisismyrestsite" -Body $BodyJson -WebSession $WebSession
Run Code Online (Sandbox Code Playgroud)
也许这对其他人有帮助,因为到目前为止我在网上没有找到好的解决方案。如果有人需要特殊的代理设置,我相信他也可以用值填充 $Proxy,这可能允许比 Invoke-RestMethod 或 Invoke-WebRequest 更多的设置。编辑:请记住,这仅适用于 5.1。对于 Core,请使用 -NoProxy 开关!
不是原生的,因为这些是 PSCore Web cmdlet 中的一些改进,并且 MS 已声明不会向后移植任何内容。您只需从 PS5x 调用 PSCore 即可按原样使用 cmdlet。
使用此函数为 Invoke-WebRequest 完成类似的操作:
根据此问答
$p = proxy
$p.Override += "*.domain.com"
$p | proxy
Invoke-WebRequest ...
#you could return old override here.
Run Code Online (Sandbox Code Playgroud)
因此,它可能与 Invoke-RestMethod 一起使用,但我无法测试它。
| 归档时间: |
|
| 查看次数: |
21004 次 |
| 最近记录: |