Vollzugriff und Senden Als Berechtigungen aus Exchange Online auslesen

The estimated reading time 3 minutes

Vielleicht habt ihr meinen alten Artikel über das Auslesen der Vollzugriffsberechtigungen auf einem lokalen Exchange gelesen und fandet diesen brauchbar? Nun sind wir aber im Jahr 2021 und viele Firmen wandern in Richtung Cloud. Also dachte ich mir, dass es vielleicht ganz sinnvoll wäre ein „Relaunch“ des Artikels für Exchange Online zu machen. Hier ist er also!

Um überhaupt in den Genuss der Exchange Online PowerShell zu gelangen, muss zunächste das neue Exchange Online Module V2 installiert werden (der folgende Code geht mit V2). Wer nicht weiß was er nun tun soll, schaut euch meinen älteren Beitrag dazu an.
PowerShell und Exchange Online V2
In Kürze:

Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Um die nachfolgenden Zeilen erfolgreich ausführen zu können, muss eine aktive Verbindung mit Exchange Online bestehen.

Vollzugriff aller Postfächer auslesen

$fullaccess = Get-Mailbox -ResultSize unlimited | Get-MailboxPermission | Where-Object {(-not ($_.identity -like "*DiscoverySearchMailbox*")) -and (-not ($_.User -like "NT AUTHORITY\SELF")) -and ($_.IsInherited -eq $false)}
$fullaccess | ft Identity,User,AccessRights -AutoSize

Nachdem Ausführen dieses Befehles erhaltet ihr keine Ausgabe aber der Inhalt wird in der Variablen $fullaccess gespeichert. Der Inhalt kann nun mit „$fullaccess“ wiedergegeben werden. Nicht wundern, wenn der Befehl etwas länger braucht, speziell in größeren Umgebungen. Als nächsten Schritt erstellen wir eine Ausgabedatei.

$fullaccess | Sort-Object Identity |Select-Object Identity,User,AccessRights| Export-Csv -Path C:\temp\exonfullaccess.csv -Encoding UTF8 -Delimiter ";"  

Mit diesem Befehl wird der Inhalt der Variablen in eine CSV Datei geschrieben (PFAD anpassen), welche dann in weitere Programmen wie Excel verarbeitet werden kann.

CSV sieht dann so aus:

In Excel kann diese Ansicht auch weiter gefiltert werden

Auslesen aller „Senden Als“ Berechtigungen

Im Prinzip lesen wir nun die „Senden Als“ Berechtigung auf die selbe Weise aus, wie die Vollzugriffsberechtigung.

$sendas = Get-Mailbox -ResultSize unlimited | Get-RecipientPermission | Where-Object {(-not ($_.identity -like "*DiscoverySearchMailbox*")) -and (-not ($_.Trustee -like "NT AUTHORITY\SELF")) -and ($_.IsInherited -eq $false)}
$sendas | ft Identity,Trustee,AccessRights -AutoSize

Alle Senden Als stehen nun in der Variablen „$sendas“. Wer es hier wieder als CSV haben möchte, kann folgenden Befehl verwenden.

$sendas | Sort-Object Identity |Select-Object Identity,Trustee,AccessRights| Export-Csv -Path C:\temp\exonsendas.csv -Encoding UTF8 -Delimiter ";"

Auslesen aller „Senden im Auftrag von“ Berechtigungen

Eine weitere verbreitete Berechtigung ist die „Senden im Auftrag von“ , welche ebenfalls ganz interessant sein kann. Hier also der Code dafür:

$sendonbehalf = Get-Mailbox -ResultSize unlimited | Where-Object {$_.GrantSendOnBehalfTo -ne $null} 
$sendonbehalf | ft Userprincipalname,PrimarySMTPAddress,GrantSendOnBehalfTo

Ein weiterer Export und wir haben wieder alle Informationen im CSV Format vorliegen um extern weiterzuarbeiten.

$sendonbehalf  | Sort-Object Identity |Select-Object Userprincipalname,PrimarySMTPAddress,GrantSendOnBehalfTo| Export-Csv -Path C:\temp\exonsendonbehalf.csv -Encoding UTF8 -Delimiter ";"

Es ist nicht ganz so kompliziert und kann schnell angewendet werden um eine Übersicht über die aktuellen Berechtigungen zu bekommen. Wenn euch der Artikel gefallen hat, dann klickt auf „helpful“ oder lasst mir gerne einen Kommentar da. Viel Spaß damit.

Was this article helpful?
YesNo
5 1 vote
Article Rating
Abonnieren
Benachrichtige mich bei
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments