peterz
Goto Top

Exchange Mailboxberechtigungen löschen

Hallo,

ich möchte gerne per Powershell alle Mailbox- und Mailboxfolder-Berechtigungen für einen bestimmten AD-Account löschen können.
Ich will das Script nach dem Ausscheiden eines Mitarbeiters (vor dem Löschen des AD-Accounts) über den Exchange Server laufen lassen, damit keine verwaisten Berechtigungen auf dem Exchange Server bleiben.

Hat vielleicht jemand schon so ein Script?

Content-ID: 3310803421

Url: https://administrator.de/contentid/3310803421

Ausgedruckt am: 25.11.2024 um 02:11 Uhr

MeowJayJay
MeowJayJay 11.07.2022 um 10:10:59 Uhr
Goto Top
/Follow face-smile
Peterz
Peterz 11.07.2022 um 10:36:51 Uhr
Goto Top
/Follow
?
Doskias
Doskias 11.07.2022 um 10:37:30 Uhr
Goto Top
Moin,

kannst du genauer definieren welche Berechtigungen du meinst. Meinst du explizit die Berechtigungen, die du mittels set-mailboxfolderpermission setzen kannst oder meinst du "senden als" und "Vollzugriff", die du über die Exchange Console setzt?

Gruß
Doskias
Peterz
Peterz 11.07.2022 um 10:46:10 Uhr
Goto Top
Ich meine Berechtigungen die mit
- Add-MailboxPermission
- Add-MailboxFolderPermission
gesetzt werden.
Doskias
Doskias 11.07.2022 um 10:57:29 Uhr
Goto Top
Moin,

Ich hab mir da mal ein Skript zusammengebaut

# Einen User aus den Postfachberechtigungen löschen
$user= "Nachname, Vorname"  

$alle_order=Get-MailboxFolderStatistics Zieladresse@Domain.de | Select-Object FolderPath
foreach ($ordner in $alle_order)
{
$Pfad='Zieladresse@Domain.de'+$ordner.folderpath -replace '/','\'  
get-mailboxfolderpermission $pfad | ?  user -like $user |remove-mailboxfolderpermission
}

Geht theoretisch auch kürzer, aber so ist es für PS-Anfänger noch verständlich face-wink

Du musst nur Zeile 2,4 und 7 entsprechend anpassen. Mit dem Skript solltest du dann in der Lage sein die MailboxPermissions ebenfalls zu löschen.

Gruß
Doskias
Peterz
Peterz 11.07.2022 um 11:36:54 Uhr
Goto Top
Danke, das werde ich mal probieren.
colinardo
colinardo 13.07.2022 aktualisiert um 10:37:23 Uhr
Goto Top
Servus.
<#
    Remove explicitly assigned rights for one useracount from all mailboxes/mailboxfolders
#>
param (
    [parameter(mandatory=$true)][ValidateNotNullOrEmpty()][string]$username
)
# user account for which to remove rights
$user = Get-ADUser $username
if (!$user){exit 1}
#  process each mailbox
foreach($mailbox in Get-Mailbox -ResultSize unlimited){
    write-host "Processing mailbox: $($mailbox.PrimarySmtpAddress) ..." -F Green  
    # remove mailbox permissions
    $mailbox | Get-MailboxPermission -ResultSize unlimited | ?{!$_.IsInherited -and $_.User.SecurityIdentifier -eq $user.SID} | Remove-MailboxPermission -confirm:$false
    # remove mailboxfolder permissions
    $mailbox | Get-MailboxFolder -Recurse | Get-MailboxFolderPermission -User $user.SamAccountName -EA SilentlyContinue | Remove-MailboxFolderPermission -confirm:$false
}
Hat vielleicht jemand schon so ein Script?
Schade, früher hat man sich noch bei der Ehre gepackt und selbst den Hammer geschwungen face-smile. Lässt sich dabei doch so viel bei den Gehversuchen lernen.

Grüße Uwe

Powershell Leitfaden für Anfänger