Exchange Online Powershell Modul: Handling mit Timeouts und Authentifizierung

22.05.2019

In der Welt von Microsoft Exchange ist die PowerShell ein sehr wichtiges und mächtiges Instrument, um die Umgebung an die eigenen Bedürfnisse anzupassen oder um individuelle Auswertungen zu fahren. Das hat sich auch in der Welt von Office 365 und Exchange Online nicht geändert.

Das erfordert den Aufbau einer Remote PowerShell Session inkl. Authentifizierung via Benutzername + Kennwort.

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential (Get-Credential) -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

Wer aber nach Best Practices vorgeht und seine Admin-Zugänge per Multifaktor-Authentifizierung (MFA) absichert, der muss sich das Exchange Online PowerShell Modul herunterladen. Mit Start des Moduls öffnet sich ein PowerShell-Fenster, mit Eingabe des Befehls "Connect-EXOPSSession" erscheint das "Modern Authentication"-Anmeldefenster, was zur Eingabe von Benutzername + Passwort auffordert. Im Anschluss kann man per zweitem Faktor die Authentifizierung abschließen.

Soweit so gut - nur leider sind die Timeout-Werte relativ kurz gehalten und so darf man sich im Laufe eines Tages mehrmals neu authentifizieren.
Um das Ganze wirklich praktikabel zu gestalten, kann beim Aufbau der Session einfach der Parameter "-UserPrincipalName" mitgegeben werden:

Connect-EXOPSSession -UserPrincipalName 'user@principal.name'

Per Single-Sign-On wird der User automatisch authentifiziert und nur beim initialen Verbindungsaufbau wird nach dem zweiten Faktor gefragt. Sofern die Session im Laufe des Tages abläuft, verbindet sich die PowerShell automatisch neu, ohne dass der zweite Faktor noch einmal abgefragt wird.