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-Key: 3310803421

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

Printed on: April 25, 2024 at 04:04 o'clock

Member: MeowJayJay
MeowJayJay Jul 11, 2022 at 08:10:59 (UTC)
Goto Top
/Follow face-smile
Member: Peterz
Peterz Jul 11, 2022 at 08:36:51 (UTC)
Goto Top
/Follow
?
Member: Doskias
Doskias Jul 11, 2022 at 08:37:30 (UTC)
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
Member: Peterz
Peterz Jul 11, 2022 at 08:46:10 (UTC)
Goto Top
Ich meine Berechtigungen die mit
- Add-MailboxPermission
- Add-MailboxFolderPermission
gesetzt werden.
Member: Doskias
Doskias Jul 11, 2022 at 08:57:29 (UTC)
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
Member: Peterz
Peterz Jul 11, 2022 at 09:36:54 (UTC)
Goto Top
Danke, das werde ich mal probieren.
Member: colinardo
colinardo Jul 13, 2022 updated at 08:37:23 (UTC)
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