MailboxFolderPermissions aufräumen

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