The estimated reading time 2 minutes
Auslesen aller ‚Vollzugriffsberechtigungen‘ innerhalb der Exchange Organisation
Meistens werden im Laufe der Zeit Berechtigungen oftmals auch „Vollzugriff“ auf ein Postfach vergeben. Dies gerät dann bei fehlender Dokumentation in Vergessenheit. Der Benutzer meldet sich meistens auch nicht, sodass hier Berechtigungen entstehen, die eigentlich nicht erwünscht sind.
Mit Powershell lassen sich „Vollzugriffsberechtigungen“ auf Postfächer bequem auslesen oder auch in eine TXT Datei schreiben.
Der Befehl gibt eine Übersicht, auf welche Postfächer ein Vollzugriff gesetzt ist und wer das Recht bekommen hat.
$nbdomain = "NetBIOS-DOMAIN" Get-Mailbox | Get-mailboxPermission | Where-Object { ($_.accessRights -like "*fullaccess*") -and -not ($_.User -like "nt-autorität\selbst") -and -not ($_.User -like "$nbdomain\Domänen-Admins")-and -not ($_.User -like "$nbdomain\Organisations-Admins") -and -not ($_.User -like "$nbdomain\Organization Management") -and -not ($_.User -like "$nbdomain\Administrator") -and -not ($_.User -like "$nbdomain\Exchange Servers") -and -not ($_.User -like "$nbdomain\Exchange Trusted Subsystem") -and -not ($_.User -like "nt-autorität\system")} | ft -AutoSize
Der Output ist simpel, unter Identity steht das Postfach welches einen Vollzugriff eingerichtet hat, unter User steht der Benutzer der den Vollzugriff als Recht erhalten hat
Wenn der Administrator im Einzeiler komplett entfernt wird, werden auch alle Berechtigungen des Administrators angezeigt.
Auf eine ähnliche Weise kann man sich die Berechtigungen „Senden als“ bzw. „Senden im Auftrag von “ anzeigen lassen:
Get-Mailbox | Get-ADPermission | where {($_.ExtendedRights -like '*Send*') -and -not ($_.User -like "NT-AUTORITÄT\SELBST")} | Format-Table -Auto Identity,User,Deny,ExtendedRights
In meiner Umgebung mit ca. 80 Benutzern dauerte der Befehl bei mir etwas länger, also nicht verzweifeln. Lasst die Powershell einfach werkeln.
Zu guter Letzt möchte man dann auch noch wissen, wer die Berechtigung „Senden im Auftrag“ von englisch „send on behalf“ zugewiesen hat.
Get-Mailbox | Where-Object {$_.GrantSendOnBehalfTo -ne $null} | fl DisplayName,Alias,Identity,GrantSendOnBehalfTo
Dies sind die meist vergebenen Berechtigungen und können mit diesen drei mehr oder minder einfachen Befehlen abgefragt werden und natürlich auch in eine TXT Datei ausgegeben werden.
Ich hoffe ich konnte eine kleine Hilfestellung zu dem Thema Vollzugriff, Senden als, Senden im Auftrag von geben.
Viel Spaß beim Testen, freue mich über Kommentare.
Dieser Befehl ist Gold wert- vielen Dank. Wir müssen hin und wieder Auskunft geben, welcher Benutzer wo Zugriff hat. Wäre es auch möglich die Abteilung mit ausgeben zu lassen? Dann könnte ich das entsprechend filtern. Das Feld „Abteilung“ ist im Exchange immer gefüllt.
Hallo Sebastian,
ja das ist möglich, allerdings nicht in einem oneliner. Ich habe mal schnell ein Skript erstellt, das rudimentär diese Funktion bereitstellt.(habe ich gerade in Exchange Online gemacht, sollte aber auch auf Exchange OnPrem funktionieren)
$nbdomain = "NetBIOS-DOMAIN"
$mbs = Get-Mailbox -ResultSize 5000
Write-host "##fullaccesspermissions"
foreach($mb in $mbs){
$userinfo = $mb | get-user
$email = ($userinfo).WindowsEmailAddress
$dep = ($userinfo).Department
Write-Host "User: $email , Departement: $dep"
Get-mailboxPermission -Identity $email| Where-Object { ($_.accessRights -like "*fullaccess*") -and -not ($_.User -like "nt-autorität\selbst") -and -not ($_.User -like "$nbdomain\Domänen-Admins")-and -not ($_.User -like "$nbdomain\Organisations-Admins") -and -not ($_.User -like "$nbdomain\Organization Management") -and -not ($_.User -like "$nbdomain\Administrator") -and -not ($_.User -like "$nbdomain\Exchange Servers") -and -not ($_.User -like "$nbdomain\Exchange Trusted Subsystem") -and -not ($_.User -like "nt-autorität\system")} | ft -AutoSize
}
Lass mich wissen wenn ihr Hilfe braucht, eventuell kann ich hier auch unterstützen.
Viele Grüße
Alexander
Sehr gut aufbereitet – vielen Dank für die Mühe!!!
[…] habt ihr meinen alten Artikel über das Auslesen der Vollzugriffsberechtigungen auf einem lokalen Exchange gelesen und fandet […]
Vielen Dank,
funktioniert wirklich gut.
In einer Domäne mit 500 Adressen, ca. 2 Minuten .
Hallo Danke für die Befehle. Könnten Sie die befehle ergänzen für die ausgabe als txt?
Vielen dank!
Hallo Alexander,
die Ausgaben können in eine TXT Datei ausgegeben werden, indem man einfach hinter den Befehl “ >.\dateiname.txt “ setzt. Dann wird die Ausgabe in eine Datei geschrieben. Sollte bei allen Befehlen funktionieren. Oder auch den Pfad angeben „> C:\temp\datei.txt “
Bei weiteren Fragen einfach melden.
Viele Grüße Alexander