Search code examples
powershellexchange-server

Why am I unable to delete a folder permission in Exchange Online?


I am trying to delete permissions on a public folder in Exchange Online. We inadvertently desynced mail-enabled security groups in AD-Connect. This caused all permissions to be lost in the migrated public folders (even after resyncing). I've since recreated the security groups in M365 and have the permissions working on the new groups.

However, I am unable to remove the permissions from the folder for any of the synced security groups. If I do it in the GUI it saves without error, but the permission is still there.

In Powershell, I attempt to remove the permission and receive an error of There is no existing permission entry found for user: Finance Group even though the entry shows there is. The Powershell output is below. This is my first post so I am not allowed to embed images yet - apologies.

Get-PublicFolderClientPermission "\Finance\Finance Departmental Calendar"

Powershell Results for Get-PublicFolderClientPermission

Remove-PublicFolderClientPermission -Identity "\Finance\Finance Departmental Calendar" -User "Finance Group"

Powershell Results for Remove-PublicFolderClientPermission

Thanks in advance.


Solution

  • If the issue is not just inheritance, microsoft has some recommendations here: https://learn.microsoft.com/en-us/exchange/troubleshoot/public-folders/public-folder-permission-issues

    # check permissions on the primary pf mailbox specifically
    Get-PublicFolderClientPermission \puf1 -User User1 -Mailbox (Get-Mailbox -PublicFolder | ?{$_.IsRootPublicFolderMailbox -eq "True"}).Name
    
    # check permissions on the user's pf mailbox
    Get-PublicFolderClientPermission "\puf1" -User User1 -Mailbox pubmbx1
    
    # check the hierarchy sync status, and compare between pf mailboxes
    $s = Get-PublicFolderMailboxDiagnostics pubmbx1 -IncludeHierarchyInfo
    $s.HierarchyInfo
    $s.SyncInfo.LastAttemptedSyncTime.LocalTime
    $s.SyncInfo.LastFailedSyncTime.LocalTime
    $s.SyncInfo.LastSyncFailure
    
    # manually resync permissions to entire pf mailbox
    Update-PublicFolderMailbox pubmbx1 -InvokeSynchronizer
    

    Be careful of making changes in O365 if you're in hybrid config. You probably don't want to overwrite the newly-added permissions in O365 by surprise sync up from on-prem


    In my anectodal experience, 365 also needs the original user object to exist for some reason. Probably buggy behavior with how it resolves the user name on permission entries. If possible, try and resync the old groups to 365

    I have had to export, delete, and recreate a mailbox or publicfolder to fix certain rare situations