Changing Exchange 2013 Calendar Permissions at the Database Level

Hi All,

I am trying to find out if it is possible to change the Outlook Calendar permissions from Free/Busy to Free/Busy, Subject, Location for all users across the organization.

I would ideally like to do it at the database level so that any new users will automatically receive those permissions, similar as to how you can add full access rights for admins to new users as they are added to Exchange without having to re-run the script.

Is this even possible? I have spent hours searching for a way to do it, but can't seem to find anything other than scripts that will update only the current users, not the future ones as well.

Any help would be greatly appreciated. Feel free to ask for clarification if required.

Thanks,

Paul.
Paul FAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
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.

Will SzymkowskiSenior Solution ArchitectCommented:
Specifically for this you cannot use the Database and MailboxFolderPermission together like you can with Full Mailbox Access rights. This is because this is a folder within the Mailbox itself.

However you can create a and assign it to a scheduled task and have it run as often as you like. From there it will apply permissions on the new mailboxes that are created...

You can use the below script.

$Mailboxes = Get-Mailbox -ResultSize "unlimited"
$Access = "Reviewer"
ForEach ($Mailbox in $Mailboxes)

      {
            
        Set-MailboxFolderPermissions -Identity $Mailbox":\Calendar" -User Default -AccessRights $Access

}

Open in new window


Will.
Paul FAuthor Commented:
Thanks for the response Will.

I don't want to give "Reviewer" level access, just "Free/Busy Time, Subject, Location". I have tried the script replacing "Reviewer" with "Limited Access", but it doesn't seem to like it.

Error:

Cannot process argument transformation on parameter 'AccessRights'. Cannot convert value "LimitedAccess" to type
"Microsoft.Exchange.Management.StoreTasks.MailboxFolderAccessRight[]". Error: "Cannot convert value "LimitedAccess" to type
"Microsoft.Exchange.Management.StoreTasks.MailboxFolderAccessRight". Error: "Requested value 'LimitedAccess' was not found.""
    + CategoryInfo          : InvalidData: (:) [Set-MailboxFolderPermission], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-MailboxFolderPermission
    + PSComputerName        : labexc.acmlab.local

Do you know what I have to use?

Thanks,

Paul
Hello WorldCommented:
Hi,
I'm afraid it cannot be achieved, here's the article about Set-MailboxFolderPermission:
https://technet.microsoft.com/en-us/library/ff522363(v=exchg.150).aspx
Note the description for AccessRights paraments.

We can use below command to show subject in resource's calendar:
Set-CalendarPrcesssing room -DeleteSubject $False
More details about it, please refer to: https://technet.microsoft.com/en-us/library/dd335046(v=exchg.150).aspx
Will SzymkowskiSenior Solution ArchitectCommented:
I have tried the script replacing "Reviewer" with "Limited Access", but it doesn't seem to like it.

You have a space between "limited Access" it should be LimitedDetails.

Will.

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
Paul FAuthor Commented:
Hi Will,

I have tested the following out in the lab:

$Mailboxes = Get-Mailbox -ResultSize "unlimited"
$Access = "LimitedDetails"
ForEach ($Mailbox in $Mailboxes)

      {
           
        Set-MailboxFolderPermission -Identity $Mailbox":\Calendar" -User Default -AccessRights $Access

}
   

This works as I want it to. I had to remove the 's' from 'Set-MailboxFolderPermissions' though.

I am going to apply it to Production as soon as my CR is approved, as well as set it as a weekly scheduled task.

Thank you very much for your help, and thank you to the others who offered responses as well.

Cheers,

Paul.
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
Exchange

From novice to tech pro — start learning today.