Adding Rights to Public Folders (Recursively)

KB ID 0001598

Problem

After a recent Exchange migration (2007 > 2013 > 2016), I had problems with users not being able to see public folders, one user could see them all, (so I know they were present and correct, content wise,) but other users could not even see them.

Normally in this situation I’d test them in Outlook Web App first, if they work there then look at Outlook, but Public folders just didn’t work in Outlook Web App 2016 at all.

My first task was to check/set the permissions of the public folders, the one user who could see them was set as ‘Owner‘ on the root of the public folders, so my first step was working out how to grant myself these rights, and apply all those rights to all the child public folders below?

Note: Granting a user ‘Owner‘ rights at the root has obvious security implications, in your scenario you might want to choose ‘Reviewer’, or some other level of access.

View Existing Public Folder ‘Root’ Permissions

Simply use the following PowerShell in the Exchange Management Shell;

Get-PublicFolderClientPermission "\"

If you just wanted to check for one user, then do this instead;

Get-PublicFolder -Identity "\" -Recurse | Get-PublicFolderClientPermission | Where-Object { $PSItem.User -like "SURNAME*" }

Note: If you are working on a particular ‘child’ Public Folder the the syntax is “\FOLDER NAME“.

Granting Public Folder Rights Recursively

Use the following PowerShell in the Exchange Management Shell

Get-PublicFolder -Identity "\" -Recurse | Add-PublicFolderClientPermission -User pete.long -AccessRights Owner

Add Public folder Owner Permissions Recursively

It complains and says this user already has rights? If this happens then Recursively Remove all rights then re-execute the command above.

Removing Public Folder Rights Recursively

Use the following PowerShell in the Exchange Management Shell

Get-PublicFolder -Identity "\" -Recurse | Remove-PublicFolderClientPermission -User pete.long

Related Articles, References, Credits, or External Links

NA

Author: PeteLong

Share This Post On

5 Comments

  1. Thanks article was helpful.
    Get-PublicFolderClientPermissions “\” gave me an error though, it should be Permission without the trailing ‘s’.

    Post a Reply
    • Thanks Mark – Typo fixed!

      Post a Reply
  2. Hi,

    Is there a way to get public folder permissions for Root folder \Test and all sub folders? But I would like to also see the folder path, permissions and users for the root and sub folders?

    \Test (Permissions) (Users)
    \Test\Test Sub (Permissions) (Users)
    \Test\Test Sub 2 (Permissions) (Users)

    Hope this makes sense.

    Post a Reply
    • Try this
      Get-PublicFolder -Recurse -resultsize unlimited | Get-PublicFolderClientPermission | Select-Object Identity,@{Expression={$_.User};Label=”User”},@{Name=’AccessRights’;Expression={[string]::join(‘, ‘, $_.AccessRights)}},@{label=”PrimarySmtpAddress”;expression={(Get-Mailbox $_.User.tostring()).PrimarySmtpAddress}}|export-csv “C:\outputpath\pfpermission.csv” -NoTypeInformation

      Post a Reply
  3. Hi, I need to set specific accessrights on some mails within the same folder.
    Microsoft has some internal methods, they are not officially published, so I cannot find how to set what I need. Do you by any chance have something?
    Thanx and best regards!

    Post a Reply

Submit a Comment

Your email address will not be published. Required fields are marked *