Exchange Online - Calendar Permissions with a Group for all UserMailboxes

Hallo zusammen,

Ich hatte schon vor einiger Zeit mal von einem Kunden die Anforderung erhalten, auf allen Kalender der Benutzer in Exchange Online mehr Berechtigungen einzutragen als nur Free/Busy.

Dazu gibt es zwei Möglichkeiten:

  • Anpassen der Default Berechtigungen
  • Berechtigung über eine AD Gruppe

Ich habe den Ansatz über eine AD Gruppe gewählt, wie man im Bild hier sieht.

Wenn man in den Kalenderberechtigungen eine Gruppe hinzufügen will, so kann man nicht jede Gruppe auswählen. Einige Objekte haben so einen durchgestrichenen Kreis im Symbol. Diese können nicht ausgewählt werden.

Wie man sieht, habe ich jede Kombination der Gruppe von DomainLocal (DL), Global (G) und Universal (U) jeweils als Security (Sec) und Mailaktiviert (M) erstellt.

Eine Domain Local Group kann nicht Mailaktiviert werden

So sieht die Gruppe aus, welche funktioniert.

Universal Security Group welche Emailaktiviert ist.

Fragt man das per PowerShell ab, so muss man die Mailbox:\Ordner angeben. Zu bedenken gibt es hier allerdings, dass die Ordner je nach Sprache des Anwenders unterschiedlich heissen können.

Get-MailboxFolderPermission -Identity a.bohren:\Kalender

Mit dem folgenden Script kann man die Kalender Permissions auf allen UserMailboxen mit der Gruppe anpassen.

###############################################################################

# ExchangeOnline Powershell

###############################################################################

Import-Module ExchangeOnlineManagement

Connect-ExchangeOnline

 

 ###############################################################################

# Set Default Calendar Permissions for All Users --> O365 Powershell

###############################################################################

$Mailboxes = Get-EXOMailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited

 

ForEach ($Mailbox in $Mailboxes)

{

$Cal = Get-EXOMailboxFolderStatistics -Identity $Mailbox.PrimarySMTPAddress | Where {$_.Foldertype -eq "Calendar"} | select folderpath

$NormalizedFolder = $Cal.FolderPath.Replace("/","\")

$NormalizedIdentity = $Mailbox.PrimarySMTPAddress + ":" + $NormalizedFolder

Write-Host $NormalizedIdentity -foregroundcolor Green

 

Add-MailboxFolderPermission -Identity $NormalizedIdentity -user TestGroup_U_Sec_M@icewolf.ch -AccessRights LimitedDetails -SendNotificationToUser $false

#Set-MailboxFolderPermission -Identity $NormalizedIdentity -user "Default" -AccessRights LimitedDetails -SendNotificationToUser $false 

}

Grüsse
Andres Bohren