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
}