Exchange 2016 Remote Powershell – SSL
Hallo zusammen,
Ich habe mich gefragt, weshalb die Exchange PowerShell immer noch HTTP verwendet und nicht HTTPS. Im Internet bin ich auf folgenden Blog Artikel für Exchange 2013 gestossen.
Exchange 2013 Remote Powershell – SSL
https://justaucguy.wordpress.com/2014/05/21/exchange-2013-remote-powershell-ssl/
Ich habe das mal auf meinem Exchange 2016 CU11 Server ausprobiert.
$MySession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://icesrv06.corp.icewolf.ch/PowerShell/ -Authentication Kerberos
Import-PSSession -Session $MySession -DisableNameChecking | Out-Null
Get-Recipient -identity a.bohren
Remove-PSSession $MySession
Nun denselben code jedoch mit https
$MySession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://icesrv06.corp.icewolf.ch/PowerShell/ -Authentication Kerberos
Import-PSSession -Session $MySession -DisableNameChecking | Out-Null
Get-Recipient -identity a.bohren
Remove-PSSession $MySession
Ein Zertifikatsfehler. Also habe ich mir mal die Zertifikate in Exchange angeschaut.
Get-Exchangecertificate
Für die Website sind zwei Zertifikate gebunden
- icesrv06.corp.icewolf.ch von der AD Internen CA
- mail.icewolf.ch von GoDaddy
Beim icesrv06.corp.icewolf.ch Zertifikat sind mehrere SAN hinterlegt. Müsste eigentlich klappen...
Also versuche ich es mal mit der URL aus dem Public Zertifikat.
Nun kann keine Kerberos Authentifizierung durchgeführt werden, weil ja kein SPN mit diesem Namen vorhanden ist.
Also prüfe ich mal die Authentication auf dem PowerShellVirtualDirectory
Get-PowerShellVirtualDirectory -server ICESRV06 | fl *Auth*
Und aktiviere nun Basic Authentication
Get-powershellvirtualdirectory -server ICESRV06 | Set-PowerShellVirtualDirectory -basicauthentication $true
Danach starte ich sicherheitshalber den IIS neu
iisreset /restart
Nun melde ich mich mit Basic Authentication und HTTPS am Server an. Dafür muss ich vorher eine Credential Variable befüllen und diese als Parameter übergeben.
$Cred = Get-Credential
$MySession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://mail.icewolf.ch/PowerShell/ -Authentication Basic -Credential $cred
Import-PSSession -Session $MySession -DisableNameChecking | Out-Null
Get-Recipient -identity a.bohren
Remove-PSSession $MySession
Voila, so klappt es auch mit Exchange 2016 und HTTPS Remote PowerShell.
So entspricht der Befehl auch der Verbindung zu Exchange Online wie im folgenden Artikel von mir zu entnehmen ist:
Powershell Remoting with Exchange Online
http://blog.icewolf.ch/archive/2015/02/07/powershell-remoting-with-exchange-online.aspx
Ob das supportet ist? Keine Ahnung - also Anwendung auf eigene Gefahr!