Forum Discussion

dgk62's avatar
dgk62
Copper Contributor
Feb 17, 2025

How to repair a corrupted Public Folder (on-prem)

Hello guys,

Hope all is well.

In our Exchange 2019 environment we use Public Folders extensively. Everything seems ok except one of folders that looks corrupted.

I can execute commands Get-PublicFolder / Set-PublicFolder against it, I can get its items statistics (Get-PublicFolderItemStatistics) and have access to items through Outlook. But commands Get-PublicFolderStatistics, Get-PublicFolderClientPermission return the same error:

The security principal specified is already on the permission set.
    + CategoryInfo          : NotSpecified: (:) [Get-PublicFolderStatistics], CorruptDataException
    + FullyQualifiedErrorId : [Server=E7,RequestId=b2f89187-878f-4cab-b05f-fcdaa7d82c0d,TimeStamp=2/17/2025 3:19:42 PM] [FailureCategory=Cmdlet-CorruptDataException] B960021F,Microsoft.Exchange.Manag
   ement.MapiTasks.GetPublicFolderStatistics

I tried to repair the corresponding public folder mailbox (New-MailboxRepairRequest) but none of my requests found errors. I moved the public folder content to a different public folder mailbox, no success.

Any ideas how to fix the issue? My guess is that ACL list of the public folder is corrupted.

Regards,

Dmitry Horushin

  • SawyerColt's avatar
    SawyerColt
    Iron Contributor

    1. Check public folder status: Open Exchange Management Shell (EMS).
    Run the following command to check the health status of the public folder:
    powershell
    Get-PublicFolder -Recurse | Get-PublicFolderStatistics
    Review the output and verify that there are no errors or warning messages.
    2. Use the IsInteg tool to repair: Stop the Microsoft Exchange Information Store service.
    Open a command prompt (with administrator privileges) and navigate to the Exchange installation directory (typically C:\Program Files\Microsoft\Exchange Server\V15\Bin).
    Run the following command to check and repair the public folder database: cmd
    eseutil /g “path_to_public_folder_database.edb”
    If an error is detected, run the following command to repair the database: cmd
    eseutil /p “path_to_public_folder_database.edb”
    Note: The /p option may result in data loss, it is recommended to backup the database first.
    3. Rebuild the public folder index: Open Exchange Management Shell (EMS).
    Run the following command to rebuild the public folder index:
    powershell
    Get-PublicFolderDatabase | Update-PublicFolderDatabase
    4. Check the public folder permissions:
    Open the Exchange Management Shell (EMS).
    Run the following command to check public folder permissions:
    powershell
    Get-PublicFolderClientPermission -Identity “\PublicFolderName”
    Ensure that the permissions are set correctly and use the following command to repair the permissions if necessary:
    powershell
    Add-PublicFolderClientPermission -Identity “\PublicFolderName” -User “User” -AccessRights “Owner”
    5. Rebuild the folder using New-PublicFolder: If a specific public folder is damaged and cannot be repaired, you can try to delete and rebuild the folder.
    Run the following command to delete the corrupted public folder:
    powershell
    Remove-PublicFolder -Identity “\PublicFolderName” -Recurse
    6. Rebuild the public folder using the following command: powershell
    New-PublicFolder -Name “PublicFolderName” -Path “\ParentFolder” -Copy
    7. Check the event log: Open Event Viewer and check the Application and Service Log > “Microsoft” > ” Exchange” > ‘HighAvailability’ or ‘MailboxDatabase’.
    Take further action based on the error messages in the logs.

    • dgk62's avatar
      dgk62
      Copper Contributor

      Hello SawyerColt,
      Hope you're doing well.

      Thank you for your suggestion.

      Unfortunately, it doesn't help.

      1. Get-PublicFolderStatistics returns error for the PF
      2. I can't dismount the database to use eseutil. Online checks didn't find any issues (I can freely move the PF between PF mailboxes).
      3. Update-PublicFolderDatabase doesn't work in Exchange 2019
      4. Get(/Add/Remove)-PublicFolderClientPermission returns error. 

      There's no reason to rebuild the PF because the client access works correctly and there are no subfolders. We don't use it anymore and I hope to remove it when it's empty due the aging of its items.

      King regards,

      Dmitry.

Resources