在 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 检查进程版本。这些示例不会更改操作系统的代理首选项。

直连路由仍要求目标可以从本机访问。在只允许通过企业中间人访问互联网的网络中,绕过它确实可能导致连接失败。

相关文章