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