Nach einer Exchange Migration hatte ich das Phänomen, dass es haufenweise Mailboxen gab, welche “None” oder “AvailabilityOnly” für anderen User in den Kalender-Rechten hatten. Mag sein, dass das “historisch gewachsen” war… Fakt war, das sollte weg:
# Alle Mailboxen werden eingelesen $allMBs = Get-Mailbox # Hilfsvariable um sptäer nachzulesen bei wem etwas gemacht wurde $temp = @() # Für jede Mailbox foreach ($MB in $allMBs){ $Alias = $MB.Alias # DiscoveryMailbox soll ignoriert werden if ($Alias -notlike "Discovery*"){ # Vorhandene Kalender-Rechte auslesen # Davon ausgehen, dass es eine englische Mailbox ist $Identity = $Alias + ':\Calendar' # Schauen ob es eine englische Mailbox ist $Export = Get-MailboxFolderPermission -Identity $Identity if($Export){ # Nichts # Wenn nicht, dann ist es eine deutsche (war bei dem Szario der Fall....) }else{ $Identity = $Alias + ':\Kalender' $Export = Get-MailboxFolderPermission -Identity $Identity } # Jedes einzelne Recht analyiesren $Export | % { # Wenn das Recht "None" oder "AvailabilityOnly" ist if (($_.AccessRights -like "None") -or ($_.AccessRights -like "AvailabilityOnly")){ # Wenn es Default oder Anonymous ist, nicht machen if(($_.User -like "Default") -or ($_.User -like "Anonymous")){ # Nichts # Ansonsten weg damit }else{ $Convert = $_.User $temp += "Bei $Alias wurde der User $Convert entfernt." Remove-MailboxFolderPermission -Identity $Identity -User $Convert -Confirm:$False } } } } } $temp