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:
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.