2017-09-12 4 views
0

Je travaille sur le script PowerShell qui se connectent à Office365 Outlook (échange en ligne) comme suit:Configuration du proxy pour powershell connecter à outlook.office365

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

Maintenant, le problème est que je veux me connecter via un serveur proxy avec authentification, il en a été de même pour

$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 

Mais il ne se connecte pas via un proxy que j'ai défini. Donc, j'ai fait ce qui suit:

$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 

Mais ne passe toujours pas par procuration.

J'ai également essayé d'utiliser netsh winhttp définir le proxy "myproxy: 80" et il a traversé le serveur proxy, mais il semble qu'il n'a pas d'authentification.

Existe-t-il un moyen de définir explicitement le proxy pour la cmdlet New-PSSession? Remarque: Je ne veux pas définir de paramètre proxy sur IE, je veux juste définir explicitement le proxy par session.

Merci d'avance.

Répondre

0

C'est ce que je l'ai fait et il semble travailler .

$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 

S'il vous plaît faire des commentaires s'il y a d'autres meilleures façons ou si cela pose d'autres problèmes que je devrais être au courant.

0

Avez-vous essayé ce qui suit:

1.) Définir proxy via NETSH

2.) Dans votre approche powershell utilisation:

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

Nous vous remercions de votre suggestion, mais il semble que le client Web $ n'est pas utilisé dans la cmdlet New-PSSession. Un autre moyen? – Rodel