1. Check Calendar permission for a specific mailbox:
Get-MailboxFolderPermission -Identity Test@cu1.com:\Calendar | FL
If you want to check whether a specific user has any special Calendar permission to a specified Calendar, we can run:
Get-MailboxFolderPermission -Identity Test@cu1.com:\Calendar -User Test2
2. Add Calendar permission for a specific user to a mailbox:
Add-MailboxFolderPermission -Identity Test@cu1.com:\Calendar -User Test1 -AccessRights Editor
3. A specific group or user can have special permission (Reviewer) to all users’ Calendar:
$all=Get-Mailbox -ResultSize Unlimited
$all | ForEach {Add-MailboxFolderPermission -Identity “$($_.alias):\Calendar” -User Group1 -AccessRights "Reviewer"}
This example assigns permissions for Test to access all room mailboxes' Calendar folder and applies the Editor role to his access of those folders:
$all=Get-Mailbox -RecipientTypeDetails RoomMailbox
$all | ForEach {Add-MailboxFolderPermission -Identity “$($_.alias):\Calendar” -User Test -AccessRights "Editor"}
4. Change Calendar permission for a user who has had related permission to a mailbox Calendar:
Set-MailboxFolderPermission -Identity Test@cu1.com:\Calendar -User Test1 -AccessRights Reviewer
5. Change all users’ Default Calendar permission in Exchange:
$all=Get-Mailbox -RecipientTypeDetails UserMailbox
$all | ForEach {Set-MailboxFolderPermission -Identity “$($_.alias):\Calendar” -User default-AccessRights "None"}
6. List Calendar permission for all user mailboxes in Exchange:
ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) {Get-MailboxFolderPermission -Identity "$($Mailbox.Name):\Calendar" | Select @{n='Calendar';e={$Mailbox.Name}},User,AccessRights}
7. Export the Calendar permissions for all mailboxes in Exchange:
To Txt file:
$Results = ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) {Get-MailboxFolderPermission -Identity "$($Mailbox.Name):\Calendar" | Select @{n='Calendar';e={$Mailbox.Name}},User,AccessRights}
To CSV file:
$Results | out-file -filepath C:\CalendarPermission.txt
$Results = ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited)) { Get-MailboxFolderPermission -Identity "$($Mailbox.Name):\Calendar" | Select @{n='Mailbox';e={$Mailbox.Name}},User,@{Name='AccessRights';Expression={[string]::join(";", ($_.AccessRights))}}}
$Results | Export-Csv C:\permission8.csv
References:
Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.