Quantcast
Viewing all articles
Browse latest Browse all 8719

Sharing Some Scripts about Managing Exchange Calendar Permissions

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:

https://social.technet.microsoft.com/Forums/en-US/80d6de56-0820-453c-8d3f-5982631aaf20/adding-editor-permissions-to-a-ad-security-group?forum=exchange2

https://social.technet.microsoft.com/Forums/en-US/00ebf670-15a8-4b49-9b6c-fe576e1d0161/changing-calendar-permissions-for-all-users-in-powershell?forum=

https://social.technet.microsoft.com/Forums/exchange/en-US/af85511b-25eb-48e2-8313-f97201b99dc1/script-to-pull-calendar-permission-of-all-users-in-domain?forum=exchange2010


Please click to vote if the post helps you. This can be beneficial to other community members reading the thread.



Viewing all articles
Browse latest Browse all 8719

Trending Articles