PowerShell Invoke-RestMethod:为单个请求绕过代理
在 PowerShell 7 中使用 NoProxy,或在 Windows PowerShell 5.1 中使用显式的空会话代理。
在 PowerShell 7 中,对需要直连的请求使用 Web cmdlet 的显式开关:
Invoke-RestMethod -Uri 'https://example.com/' -NoProxy
NoProxy 是在 PowerShell 6.0 中引入的,不能与 Proxy 同时使用。Windows PowerShell 5.1 不提供该开关。
对于 5.1 中的请求,请提供一个带有空 WebProxy 的 Web 会话:
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$session.Proxy = New-Object System.Net.WebProxy
Invoke-RestMethod -Uri 'https://example.com/' -WebSession $session
不带参数的 WebProxy 没有代理地址,会绕过目标。请将该会话保留给打算使用此直连策略的请求;另一个会话可以保留另一条路由。
在选择形式之前,用 $PSVersionTable.PSVersion 检查进程版本。这些示例不会更改操作系统的代理首选项。
直连路由仍要求目标可以从本机访问。在只允许通过企业中间人访问互联网的网络中,绕过它确实可能导致连接失败。