Set Calendar permissions in Exchange 2010 in bulk


I need to set calendar permissions in bulk. It's a little more complex than granting free/bussy permissions for all the users

For example, I want user from one OU to have 'publishing editor' permissions on the calendars of the users in another OU.

I found a way to do this with ExFolders but this is fine for a couple of mailboxes.

Unfortunately I'm not that good in powershell, which I think will be my solution here.

If I can do it using security groups then it would be even better. Then I can take a copy of an existing user when a new users needs to be added. This user will then automatically have the correct calendar permissions.

Can somebody help me out?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I want user from one OU to have 'publishing editor' permissions on the calendars of the users in another OU.
Is it for single user? or does all users from one OU need to be granted 'publishing editor' permissions on the calendars of the users in another OU.

If permission need to be granted for all users in the OU then, You can create a mail enabled security group and assign permission for that group..
FlipTripAuthor Commented:
Yes it's for all users from on OU.

After googling for half a day, I came up with the following script:

$MailboxesGeneral = Get-mailbox -Filter {(CustomAttribute1 -eq "General")}
$MailboxesBoard | ForEach-Object {Add-MailboxFolderPermission $_":\Agenda" -User group@domain.local -AccessRights Author}

I have configured a CustomAttribute for all users in the same OU. Then I made a Security Group that is email enabled.

Will this work?

CustomAttribute is not necessary. You can use  -OrganizationalUnit  parameter of get-mailbox to list all users from a particular OU. For example if you want to set permission on users from OU Then try..
Foreach ($MBX in Get-Mailbox -OrganizationalUnit {
Add-MailboxFolderPermission "$($MBX.Alias):\Agenda" -User group@domain.local -AccessRights Author

Open in new window


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
FlipTripAuthor Commented:
Great! Thx.
Brian PlunkettCommented:
This is what I use.  I know it was answered already but I am just shareing mine.  This will change all users to reviewer so their calendars can be seen but not edited by others.

$Result | foreach{ Set-MailboxFolderPermission $($_.UserPrincipalName+":\calendar") -User default -AccessRights  reviewer}
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.