代理设置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
非常感谢您的建议,但似乎$ New Web Client没有在New-PSSession cmdlet中使用。任何其他方式? – Rodel