EWS via Powershell aktivieren – Exchange Online (O365)

Möchte man die Exchange Webservices (EWS) nutzen, um beispielsweise Postfächer des Exchange Online in eigene Anwendungen zu integrieren, wird man schnell auf das Problem stoßen, dass für alle Nicht-Administratoren-Konten der Zugriff via EWS deaktiviert sind. Die EWS sind zwar standardmäßig auf O365 aktiviert, jedoch nur für Administratorenkonten.

Prüfen kann man das, in dem man die URL zum Dienst im Browser eingibt: https://%5Bo365-server-url%5D/ews/exchange.asmx

Hier wird eine Authentifizierung verlangt. Gibt man dann seine Admin-Credentials an, erhält man den Zugriff auf die WSDL. Als Nutzername muss hier der Userprincipalname (UPN) angegeben werden, mit dem man sich auch am Office 365 Portal anmelden würde. Also zum Beispiel: max.mustermann@contoso.com

Versucht man nun das Gleiche mit einem normalen Nutzeraccount, schlägt die Aktion mit dem Fehler 403 -Forbidden fehl. Ursache dafür ist, dass für Accounts, die nicht der Rolle Administrator zugeordnet sind, EWS abgeschalten ist. Nun möchte man natürlich nicht jedem Nutzer der Organisation Adminrechte auf dem O365-Portal erteilen. Im Portal findet sich allerdings keine Option die Exchange Webservices für einzelne Nutzer ein- und auszuschalten. Dafür ist der Zugriff auf Office 365 mit Hilfe der Windows Powershell notwendig. Der Artikel beschreibt nun im Folgenden das Vorgehen.

Zunächst ist es notwendig, die Cmdlets für O365 zu installieren. Microsoft bietet dafür einen sogenannten O365 SignIn Assistenten zum Download an. Ausserdem müssen die Microsoft Online Services Module installiert werden. Beide Links zu den Downloads findet man hier: http://onlinehelp.microsoft.com/en-us/office365-enterprises/hh124998.aspx#BKMK_connect

Nach der erfolgreichen Installation muss die Powershell für O365 als Administrator gestartet werden. Der Aufruf befindet sich im Startmenü. Nun muss man sich mit seinen O365 Credentials anmelden.

Dies geschieht mit dem Befehl: $LiveCred = Get-Credential

Es folgt ein Dialog zur Eingabe der Credentials. Danach muss die Session erstellt werden. Dazu ist folgender Befehl notwendig:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection

Danach muss die Session noch importiert werden. Der Befehl dafür: Import-PSSession $Session

Hat alles geklappt, sieht die Konsole so aus:

Nun können wir mit der eigentlich Aufgabe beginnen.

Zunächst prüfen wir, ob das Postfach für Exchange Webservices freigegeben wurde. Dafür ist das folgende Cmdlet zuständig:

Get-CasMailbox -Identity max.mustermann@contoso.com |FL EwsEnabled

Die Konsole gibt nun die Settings der Mailbox aus.

Steht der Wert für EwsEnabled auf FALSE, muss folgender Befehl ausgeführt werden, damit die Mailbox über EWS erreichbar ist:

Set-CasMailbox -Identity max.mustermann@contoso.com -EwsEnabled:$true

Danach sollte die o.g. URL für das aktivierte Konto erreichbar sein. Damit steht dem Zugriff auf das Postfach über eine .NET Applikation nichts mehr im Wege.

Möchte man aus irgendeinem Grund, den EWS Zugriff wieder deaktivieren, dann geht dies wie folgt:

Set-CasMailbox -Identity max.mustermann@contoso.com -EwsEnabled:$false

Ein Kommentar zu “EWS via Powershell aktivieren – Exchange Online (O365)

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s