2017-09-12 78 views
0

我工作的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上設置代理設置,只想爲每個會話明確設置代理。

在此先感謝。

回答

0

這是我做的,似乎工作。

$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 

請提出一些意見,如果有任何其他更好的方法或者這是否會造成任何其他問題,我應該知道的。

0

你有沒有試過如下:通過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