代理设置PowerShell的连接outlook.office365

问题描述:

我工作的PowerShell脚本连接到Outlook office365(在线交流)如下:代理设置PowerShell的连接outlook.office365

$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设置代理“myproxy:80”,它通过代理服务器,但它似乎没有身份验证。

是否有任何方法显式设置New-PSSession cmdlet的代理? 注意:我不想在IE上设置代理设置,只想为每个会话明确设置代理。

在此先感谢。

这是我做的,似乎工作。

$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 

请提出一些意见,如果有任何其他更好的方法或者这是否会造成任何其他问题,我应该知道的。

你有没有试过如下:通过NETSH

2)

1)设置代理中的powershell的使用方法:

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

非常感谢您的建议,但似乎$ New Web Client没有在New-PSSession cmdlet中使用。任何其他方式? – Rodel