连接到 outlook.office365 的 powershell 的代理设置

Proxy setting for powershell connecting to outlook.office365

提问人:Rodel 提问时间:9/12/2017 最后编辑:John SaundersRodel 更新时间:1/12/2021 访问量:4388

问:

我正在处理连接到Outlook office365(Exchange Online)的PowerShell脚本,如下所示:

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credential -Authentication Basic -AllowRedirection

现在的问题是我想通过具有身份验证的代理服务器进行连接,因此执行了以下操作

$proxy = New-Object System.Net.WebProxy "http://myproxy:80"
$proxy.Credentials = $cred
[System.Net.WebRequest]::DefaultWebProxy = $proxy
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential 
$credential -Authentication Basic -AllowRedirection

但它不能通过我设置的代理进行连接。所以我做了以下工作:

$proxy = New-Object System.Net.WebProxy "http://myproxy:80"
$proxy.Credentials = $cred
[System.Net.WebRequest]::DefaultWebProxy = $proxy
$sessionOption = New-PSSessionOption -ProxyAccessType IEConfig
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential 
$credential -Authentication Basic -AllowRedirection -SessionOption $sessionOption

但仍然不通过代理。

我也尝试使用它,它通过了代理服务器,但似乎它没有身份验证。netsh winhttp set proxy "myproxy:80"

有没有办法显式设置New-PSSession cmdlet的代理? 注意:我不想在IE上设置代理设置,只想为每个会话显式设置代理。

PowerShell 代理 office365 交换服务器

评论


答:

0赞 BastianW 9/12/2017 #1

您是否尝试过以下方法:

1.) 通过 NETSH 设置代理

2.) 在 powershell 方法中使用:

$webclient=New-Object System.Net.WebClient
$creds=Get-Credential
$webclient.Proxy.Credentials=$creds

评论

0赞 Rodel 9/13/2017
感谢您的建议,但 New-PSSession cmdlet 中似乎未使用该$webclient。还有其他方法吗?
0赞 Rodel 9/14/2017 #2

这就是我所做的,它似乎有效。

$proxyAddress = $proxyHost + ":" + $proxyPort
netsh winhttp set proxy $proxyAddress
$proxysecpasswd = ConvertTo-SecureString $proxyPassword -AsPlainText -Force
$proxycred = New-Object System.Management.Automation.PSCredential($proxyUser, $proxysecpasswd)
$sessionOpts = New-PSSessionOption -ProxyAccessType WinHttpConfig -ProxyCredential $proxycred -ProxyAuthentication Basic

$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($userId, $secpasswd)
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $credential -Authentication "Basic" -AllowRedirection -SessionOption $sessionOpts

如果有任何其他更好的方法,或者这是否会带来我应该注意的任何其他问题,请发表一些评论。