There are two main commercial tools available that can help - Ark's Admin Report Kit for Exchange Server, and Priasoft's Public Folder Analyzer. A fairly comprehensive list of Exchange Permissions Management tools can also be found on Slipstick.
Ok, down to the real-world scenario. At the moment, I'm creating a new user, and need to give them the same permissions on the Public Folders as a current employee. I can accomplish this in a variety of ways:
- Use the context menu, Folder Permissions to view an individual folder's permissions, and to add a user.
- Use the context menu on the containing folder to add a user, then use context-menu, Propagate Folder ACEs to push the same permissions down to the subfolders, for that user.
- Use powershell for a single folder:
Add-PublicFolderClientPermission -Identity "\Marketing\West Coast" -AccessRights PublishingEditor -User Kim - Use one of the included E2K7 powershell scripts under C:\Program Files\Microsoft\Exchange\Scripts to recursively apply permissions:
AddUsersToPFRecursive.ps1 -TopPublicFolder "\Sales" -User "David" -Permission Reviewer
But what if you've come to an organisation with an extensive preexisting Public Folder hierarchy, and missed out on the chance to mind-meld with the previous sysadmin who built it from the ground up?
Obviously you'll need a report. We have a small Public Folder scenario, with 4500+ folders which contain more than 600,000 mail items. Using
Get-PublicFolderStatistics | ft FolderPath,*ItemCount,total*
returns the size of each and every public folder. (You can pipe it out with export-csv and chuck it in Excel.)
To find out which permissions a user has on a particular folder, use:
Get-PublicFolderClientPermission -Identity "\yourfoldernamehere" -User yourusernamehere
Awesome, that's almost what we need!
To get the same info recursively over the whole Public folder tree:
Get-PublicFolder "\" -recurse | Get-PublicFolderClientPermission -user yourusernamehere export-csv
Very useful!