Exchange Online Postfach Service Protokolle überprüfen

The estimated reading time 2 minutes

Vor einiger Zeit hatte ich eine Anfrage auf dem Tisch, da hatte ein Mitarbeiter einen permanenten Fehler beim Öffnen des Kalenders innerhalb von Teams. Outlook funktionierte aber soweit ganz gut, bis auf die Abwesenheitsnotiz. Nach etwas Suche konnte ich die Lösung auch relativ schnell finden. Bei diesem Benutzer wurden einige Postfachdieste speziell EWS deaktiviert.

Die Postfachdienste können über das bekannte Exchange Online Admincenter wieder aktiviert werden.

Soweit kein größeres Problem, allerdings möchte ich auch in größeren Umgebungen nicht unbedingt hunderte Benutzer durchklicken um herauszufinden wer alles EWS und andere Dienste nicht aktiv hat. Also habe ich kleines Script dazu geschrieben, welches MAPI, EWS, ActiveSync ausliest und dann nur die Postfächer ausgibt, die eines davon NICHT aktiviert haben. Dies kann dann bequem in Excel oder auch in einem anderen Tool gefiltert werden

Hier nun das PowerShell Script zur Auswertung.
HINWEIS: einige Postfächer laufen mit Fehler auf, in meinem Fall waren dies lediglich Systemkonten von Exchange Online bzw. Booking Postfächer. Die können ignoriert werden.

#if there is no EXOnline connection already established use this cmdlet, otherwise ignore 
Connect-ExchangeOnline
##path output csv 
$output = "C:\temp\ews-check.csv"
#get all mailboxes smtp addresses
$mailaddresses = Get-Mailbox -ResultSize 5000 | Select-Object PrimarySMTPAddress -ExpandProperty PrimarySMTPAddress | Sort-Object PrimarySMTPAddress 
#generate csv file 
"EMAIL;MAPI;EWS;ACTIVESYNC" | Out-File -FilePath "$output" -Encoding utf8 -Append 
foreach($address in $mailaddresses){
   
    $disabledusers = Get-CASMailbox -Identity $address | Select-Object PrimarySMTPAddress,EwsEnabled,ActiveSyncEnabled,MAPIEnabled | Where-Object{($_.EwsEnabled -eq $false) -or ($_.ActiveSyncEnabled -eq $false) -or ($_.MAPIEnabled -eq $false) }

    if($disabledusers){
                $mapi = ($disabledusers).MAPIEnabled
                $ews = ($disabledusers).EwsEnabled
                $ActiveSync = ($disabledusers).ActiveSyncEnabled
            Write-Host "User $address has following services" -ForegroundColor Yellow
              "$address;$mapi;$ews;$ActiveSync"  | Out-File -FilePath "$output" -Encoding utf8 -Append  
            Write-Host "MAPI = $mapi, EWS = $ews, ActiveSync = $ActiveSync"
   }

}

Die Benutzer können nun entweder über das Exchange Online AdminCenter aktiviert werden oder eben per PowerShell:

Set-CASMailbox Emailadresse -EwsEnabled $True

Ich hoffe das Script erspart dem ein oder anderen Admin etwas Sucharbeit. Wenn euch der Artikel gefallen hat, klickt gerne auf den Button „helpful“. Falls Fragen sind gerne in die Kommentare schreiben.

Print Friendly, PDF & Email
Was this article helpful?
YesNo
0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments